您的位置:首页 > 编程语言 > Java开发

Java知识:初识集合类

2017-09-08 17:21 239 查看

主要集合类:

Collection 接口

├List 接口

│├LinkedList 类

│├ArrayList 类

│└Vector 类

│ └Stack 类

└Set 接口

│ ├HashSet 类

│ └TreeSet 类

Map 接口

├Hashtable 类

├HashMap 类

├TreeMap 类

└LinkedHashMap 类

Collection接口:

Collection接口extends Iterable接口

JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。

List接口:

List是有序的允许有相同的元素的Collection

LinkedList类

LinkedList使用双向链表实现存储。

此实现不是同步的。

ArrayList类

ArrayList实现了可变大小的数组。

它允许所有元素,包括null。

ArrayList没有同步。

Vector类

Vector非常类似ArrayList,但是Vector是同步的。

Stack 类

Stack继承自Vector,实现一个后进先出的堆栈。

Set接口

Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。

HashSet类

此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。

TreeSet类

基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。

Map接口

请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。

Hashtable类

也是以哈希表数据结构实现的,解决冲突时与HashMap也一样也是采用了散列链表的形式,不过性能比HashMap要低。

Hashtable 是同步的。

任何非 null 对象都可以用作键或值。

HashMap类

以哈希表数据结构实现,查找对象时通过哈希函数计算其位置,它是为快速查询而设计的,其内部定义了一个hash表数组(Entry[] table),元素会通过哈希转换函数将元素的哈希地址转换成数组中存放的索引,如果有冲突,则使用散列链表的形式将所有相同哈希地址的元素串起来,可能通过查看HashMap.Entry的源码它是一个单链表结构。

HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。

参考资料:

http://blog.csdn.net/chenssy/article/details/17732841

http://blog.csdn.net/softwave/article/details/4166598

http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 集合类