Java知识:初识集合类

主要集合类:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值