Java集合类在日常工作中经常用到,因此需要熟练掌握不同集合类的特性以及区别
Collection
Collection接口位于Java.util包下的集合类根接口,Collection接口继承Iterator,继承了Iterator允许通过foreach进行遍历。Collection接口作为集合类的父接口,定义了一些集合使用到的基本方法。
接口关系总览图.jpg- 添加方法
#往集合里面添加一个元素
boolean add(E o);
#往集合里添加指定集合的所有元素
boolean addAll(Collection<? extends E> c);
- 移除方法
#移除某个对象元素
boolean remove(Object o);
#移除指定集合里面的元素,只要一个被移除了,就返回true
boolean removeAll(Collection<?> c);
#移除所有的元素
void clear();
- 判断方法
#是否包含指定集合的全部元素
boolean containsAll(Collection<?> c);
#是否包含某个对象元素
boolean contains(Object o);
#是否为空判断
boolean isEmpty();
- 返回大小
#返回集合元素的数量
#如果最大值超过Integer.MAX_VALUE,则返回Integer.MAX_VALUE
int size();
- 交集方法
#集合a和集合c的交集元素保存在集合a中,有交集返回true,没有交集返回false
boolean retainAll(Collection<?> c);
- 转成数组方法
#将集合元素转成对象数组
Object[] toArray();
- 遍历方法
# 返回集合的迭代对象,继承自Iterator接口
Iterator<E> iterator();
List集合介绍
List集合直接继承了Collection接口,增加许多方法。List接口定义中指出,List集合是一个有序(存取顺序和取出顺序一致),允许重复元素的集合接口,可以通过索引查找元素,替换元素的集合接口。
根据以上的接口属性,派生出了许多实现类类供我们使用。经常用的List实现类有三种,ArrayList,LinkedList, Vector。
- ArrayList :底层是数组,线程不安全
- LinkedList : 底层是链表,线程不安全
- Vector : 底层是数组,线程安全
再接下来的博文中会详细探讨这三种集合的具体实现。
Set集合介绍
Set集合直接继承了Collection接口,不同于List集合,Set集合不允许重复元素,所以至多只有一个null元素。Set集成常见的实现类有:
- HashSet: 通过哈希表实现(数组加链表)
- LinkedHashSet: 底层数据结构式哈希表和链表
- TreeSet: 底层数据结构是红黑树
总结
本文主要介绍了Collection接口的主要方法和主要子类,作为集合类的根接口,熟悉Collection的方法对我们日常使用集合类挺重要的。
网友评论