java集合概述()
java集合框架图:
一、java集合
主要分为两大类:Collection和Map
Collection接口实现了Iterable接口(超级接口),Iterable主要提供以下的方法:
Iterator<T> |
iterator() 返回一个在一组 T 类型的元素上进行迭代的迭代器。 |
Collection接口主要提供以下方法:
boolean |
add(E e) 确保此 collection 包含指定的元素(可选操作)。 |
|
boolean |
addAll(Collection<? extends E> c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 |
|
void |
clear() 移除此 collection 中的所有元素(可选操作)。 |
|
boolean |
contains(Object o) 如果此 collection 包含指定的元素,则返回 true。 |
|
boolean |
containsAll(Collection<?> c) 如果此 collection 包含指定 collection 中的所有元素,则返回 true。 |
|
boolean |
equals(Object o) 比较此 collection 与指定对象是否相等。 |
|
int |
hashCode() 返回此 collection 的哈希码值。 |
|
boolean |
isEmpty() 如果此 collection 不包含元素,则返回 true。 |
|
Iterator<E> |
iterator() 返回在此 collection 的元素上进行迭代的迭代器。 |
|
boolean |
remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 |
|
boolean |
removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 |
|
boolean |
retainAll(Collection<?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 |
|
int |
size() 返回此 collection 中的元素数。 |
|
Object[] |
toArray() 返回包含此 collection 中所有元素的数组。 |
|
|
toArray(T[] a) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。 |
Collection集合主要包括两大集合:LIst和Set
List接口的主要实现类有:ArrayList、LinkedList、Vector,它们的主要特点如下:
ArrayList:1.底层为动态的数组结构
2. 元素可重复、有索引、存储有顺序
LinkedList:1.底层为双向链表结构
2.元素可重复、有索引、存储有顺序
Vector:1.底层为数组结构
2.线程安全
三者的区别:ArrayList查询快、增删慢,LinkedList的增删快、查询慢,二者在多并发访问下,线程不安全;而 Vector 的线程是安全的,但是其工作效率低,它的遍历方式为枚举方式
Set接口下的实现类中,HashSet、TreeSet相对来说比较常用,它们的主要特点如下:
HashSet:1.底层为哈希算法
2.元素不可重复、存储的元素较快、无索引
TreeSet: 1.底层为二叉树结构
2. 元素不可重复、存储的元素按照自然顺序排序、无索引
Map接口主要有HashMap、Hashtable、LinkedHashMap
HashMap:1.底层实现:数组、单向链表、红黑树
2.存储没有顺序,无索引,以键值对形式去存储
3.键相同,值覆盖;可以存储null键null值
Hashtable:1.底层是基于哈希表实现的
2.线程安全,但工作效率低
小结:总体常用的集合特点基本如上面所述,具体的后面会深入解析