java集合概述()

 

java集合框架图:

java集合概述()

一、java集合

主要分为两大类:CollectionMap 

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 中所有元素的数组。
<T> T[]
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.线程安全,但工作效率低

       小结:总体常用的集合特点基本如上面所述,具体的后面会深入解析