深析java集合(Collection,Map)

网上看见很多类似的关于集合的文章,但大多都是知其然不知其所以然,于是抽空总结了下,希望能够对想深入学习的朋友有所帮助。
在集合中最重要的2个接口是Collection和Map
[b]Collection[/b]
集合(序列)接口,存储有序和无序的序列
它是主接口,它的下面有几个重要的子接口List和Set
首先从接口的角度比较list和set的区别:
List:有序序列,里面有indexOf()方法来得到下标
Set没有该方法,也就是说它是无序的。
[b] List[/b]接口
它同样有3个重要的实现类ArrayList,Vector,LinkedList
ArrayList 在实现List等接口的基础上,多实现了RandomAccess接口,而该接口也就决定了ArrayList特有的属性,随即读取,速度非常的快,但是是非同步的。
Vector 跟ArrayList实现的接口完全一样,唯一的区别就是该类是同步的。
LinkedList 在实现List等接口的基础上,多实现了Deque,Queue接口(Deque extends Queue) ,而 Queue 有add(int index,E element) 等方法,也就决定了该实现类具备按照标记来快速的添加和删除数据,也是根本原因。
   [b]Set[/b]接口
    无序不重复序列 ,它缺少按照下标来取值的一些方法
    它的重要实现类HashSet
该类实现set接口,有hash表(一个map实例)支持,也就是hashset是由hashmap产生的,只是它的key和value去掉只保留了Entry,非同步
[b]Map[/b]
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
由Map.Entry<K,V> 嵌套类实现映射,该方法重写了hashcode,也就是说继承或实现该类的类的hashcode由其内容决定,与地址无关。
  它的实现类也是2个经典的类HashMap.HashTable
这2个类在接口的继承上没有差异,属性也基本一样,就跟ArrayList跟Vector一样,
HashMap非同步,而HashTable是同步的。
  我想大家如果能够了解到这些,就能够清晰的了解其用法,有时间可以看下他们的原码。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值