【Java】Java容器篇一,宏观了解
文章目录
- 【Java】Java容器篇一,宏观了解
- 一,Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念
- 二,工具类(Collections)
- 三,Collection的常用方法
- 四,Map的常用方法
- 如何学习一种体系结构:
建议整个系列一起看(更新中):
增强for:
泛型:
Java容器篇(一),宏观了解:
Java容器篇(二),深入理解List集合类:
Java容器类(三),深入理解Set集合类:
Java容器类(四),深入理解Map集合类
Java容器类(五),深入理解迭代器:本篇将带大家宏观了解Java容器的基本架构,深入知识将分成几篇分别讲解,希望创作内容能够帮助到大家
一,Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念
- Collection: 一个独立元素的序列。
- List必须按照插入的顺序保存元素
- Set不能有重复元素
- Map: 一组成对的"键值对"对象,允许你使用键来查找值
映射表允许我们使用另一个对象来查找某个对象,它被称为"关联数组",因为它将某些对象与另外一些对象关联在了一起;被称为"字典",因为你可以使用键对象来查找值对象,就像在字典中使用单词来顶一样,Map是强大的编程工具
- 迭代器(Iterator)
任何容器类,都必须有某种方式可以插入元素并将他们再次取回,毕竟,持有事务是容器最基本的工作。
从更高层角度思考,就会发现有个缺点,要使用容器,必须对容器的确切类型编程,既不知道容器元素的类型,或根本不关心容器的类型,我们如何才能不重写代码就可以引用于不同类型的容器?
迭代器(也是一种设计模式)的概念就可以用于达成此目的。迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心序列底层的结构。
此外迭代器同城被称为
轻量级对象
,创建它的代价很少
二,工具类(Collections)
在Java.util
包中的Arrays和Collection类中都有很多使用的方法,并且效率一般比自己手写的效率要高,所以要实现某些功能时,可尽量使用工具类(Collections);
类java.util.Collections提供了对Set,List,Map进行排序,填充,查找元素的辅助方法。
1. void sort(List)//对列表容器内部的元素排序,排序的规则是按照升序进行排序。
2. void shuffle(List)//对List容器内部的元素进行随机排列。
3. void reverse(List)//对列表容器内部的元素进行逆续排序。
4. void fill(List,Object)//用一个特定的对象重写整个List容器。
5. int binarySearch(List,Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。
三,Collection的常用方法
本身是接口,实际使用的是子类对象,使用多态
Collection c = new ArrayList<>();
- 增
boolean add(E e):向集合中添加元素,添加成功返回true,添加失败返回false。 - 删
boolean remove(Objet o):删除元素中的指定元素,删除成功返回true,删除失败返回false
void clear():清空集合中的元素 - 判断
boolean contains(Object o):判断集合中是否包含指定元素,包含返回true,不包含返回false
boolean isEmpty():判断集合是否为空集合,即没有元素返回true,否则false - 转换
Object[] toArray():将集合转换为Object[]
四,Map的常用方法
Map和Collection一样,同时接口,同样使用的是子类对象。
Map<K, V> map = new HashMap<>();
- 增
V put(K key,V value):添加键值对。
注意:如果key已经存在,则会使用新的value覆盖原有的value,并将原有value返回 - 删
void clear():清空集合
V remove(Object key):删除指定键的值(key 和value都会删除) - 判断
boolean containsKey(Object key):是否包含指定的键
boolean containsValue(Object value):是否包含指定的值
boolean isEmpty():是否为空 - 遍历:
Set(Map.Entry<K,V>) entrySet();获取键值对的Set集合
Set keySet():获取所有键的Set集合
Collection values() 获取所有值的Collection集合
如何学习一种体系结构:
- 从顶层开始学习共性
- 从底层使用具体实现
// List,Set,Map,迭代器,将分别深入讲解,大家可以关注一下,马上更新完