Collection
Collection接口:单列集合,用来存储一个一个的对象。主要有以下三个子接口。
-
List接口:存储有序的,可重复的数据。 --> “动态”数组
-
ArrayList、LinkedList、Vector
同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据;
异:ArrayList线程不安全,效率高;Vector线程安全,效率低,底层使用Object[]存储
LinkedList底层使用双向链表存储,对于频繁的插入、删除操作,效率较高;
-
-
Set接口:存储无序的、不可重复的数据。向Set中添加数据,其所在的类一定要重写hashCode()和equals()
-
HashSet、LinkedHashSet、TreeSet;添加的元素按照equals()判断时,不能返回true。即,相同的元素只能添加一个
HashSet线程不安全,可以存储null值;
LinkedHashSet作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历;
TreeSet可以按照添加对象的指定属性,进行排序;
-
-
Queue接口:队列,先进先出,不允许插入null。
public interface Collection<E> extends Iterable<E>
Collection 接口继承了 Iterable 接口,实现 Iterable 接口可以使对象使用增强for循环语句(for-each)。
同时, Collection 接口中定义了如下方法,具体实现请参考相关实现类
返回值类型 | 方法 | 作用 |
---|---|---|
int | size() | 返回此集合中的元素个数 |
boolean | isEmpty() | 如果此集合不包含任何元素,则返回true |
boolean | contains(Object o) | 返回此集合是否包含指定元素o |
Iterator<E> | iterator() | 返回此集合中元素的迭代器 |
Object[] | toArray() | 返回一个包含此集合中所有元素的数组 |
<T> T[] | toArray(T[] a) | 以指定的类型T返回包含此集合中所有元素的数组 |
default <T> T[] | toArray(IntFunction<T[]> generator) | 使用提供的generator 函数分配返回的数组 |
boolean | add(E e) | 确保集合中包含指定的元素,集合不允许重复且已包含该元素时返回false |
boolean | remove(Object o) | 如果集合中存在指定元素o,则删除该元素 |
boolean | containsAll(Collection<?> c) | 如果当前集合包含指定集合中的所有元素,返回true |
boolean | addAll(Colletion<? extends E> c) | 将指定集合中的所有元素添加到此集合中 |
boolean | removeAll(Collection<?> c) | 删除也包含在指定集合中的所有此集合的元素 |
default boolean | removeIf(Predicate<? super E> filter) | 删除此集合中满足给定谓词的所有元素 |
boolean | retainAll(Collection<?> c) | 仅保留此集合中包含在指定集合中的元素 |
void | clear() | 删除集合中所有元素 |
boolean | equals(Object o) | 比较当前集合和指定对象是否相等 |
int | hashCode() | 返回当前集合的哈希值 |
default Spliterator<E> | spliterator() | 在此集合中的元素上创建一个spliterator |
default Stream<E> | stream() | 返回以该集合为源的Stream序列 |
default Stream<E> | parallelStream() | 返回以该集合为源的并行Stream序列 |