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是有序的允许有相同的元素的CollectionLinkedList类
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基础知识强化之集合框架笔记35:List练习之产生10个1~20之间的随机数(要求:随机数不能重复)
- Java基础知识强化之集合框架笔记41:Set集合之HashSet存储自定义对象并遍历练习
- Java基础知识——集合体系回顾整理(List Set Map)
- java基础知识记录--集合
- java基础知识集合
- Java 集合知识汇总
- Java基础知识强化之集合框架笔记65:Map集合之集合多层嵌套的数据分析
- 黑马程序员 Java基础知识总结-j集合框架
- java学集合前准备知识object类中的常用方法
- JAVA基础知识之练习题——集合
- Java基础知识:Java实现Map集合二级联动3
- java基础知识之初识java
- Java基础知识 八 集合(Collection、List)
- JAVA基础知识之Set集合
- Java基础知识强化之集合框架笔记05:Collection集合的遍历
- Java基础知识强化之集合框架笔记20:数据结构之 栈 和 队列
- 黑马程序员java基础集合知识整合
- java基础知识---集合
- 《黑马程序员》java集合知识梳理