网上看见很多类似的关于集合的文章,但大多都是知其然不知其所以然,于是抽空总结了下,希望能够对想深入学习的朋友有所帮助。
在集合中最重要的2个接口是Collection和Map
Collection
集合(序列)接口,存储有序和无序的序列
它是主接口,它的下面有几个重要的子接口List和Set
首先从接口的角度比较list和set的区别:
List:有序序列,里面有indexOf()方法来得到下标
Set没有该方法,也就是说它是无序的。
List接口
它同样有3个重要的实现类ArrayList,Vector,LinkedList
ArrayList 在实现List等接口的基础上,多实现了RandomAccess接口,而该接口也就决定了ArrayList特有的属性,随即读取,速度非常的快,但是是非同步的。
Vector 跟ArrayList实现的接口完全一样,唯一的区别就是该类是同步的。
LinkedList 在实现List等接口的基础上,多实现了Deque,Queue接口(Deque extends Queue) ,而 Queue 有add(int index,E element) 等方法,也就决定了该实现类具备按照标记来快速的添加和删除数据,也是根本原因。
Set接口
无序不重复序列 ,它缺少按照下标来取值的一些方法
它的重要实现类HashSet
该类实现set接口,有hash表(一个map实例)支持,也就是hashset是由hashmap产生的,只是它的key和value去掉只保留了Entry,非同步
Map
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
由Map.Entry<K,V> 嵌套类实现映射,该方法重写了hashcode,也就是说继承或实现该类的类的hashcode由其内容决定,与地址无关。
它的实现类也是2个经典的类HashMap.HashTable
这2个类在接口的继承上没有差异,属性也基本一样,就跟ArrayList跟Vector一样,
HashMap非同步,而HashTable是同步的。
我想大家如果能够了解到这些,就能够清晰的了解其用法,有时间可以看下他们的原码。
分享到:
相关推荐
深析C语言的指针
深析C语言中的指针
2020张宇题源深析1000题-解析分册(数学一
深析C++析构函数,C++中析构函数是相当重要一个知识点,也是个难点。文档对析构函数了部分分析,可能不怎么全,但一点深入,相互学习呵呵
深析数据 共建智慧 南京图书馆举办全省公共图书馆大数据应用与智慧服务研讨会.pdf
集中供热工程质量控制措施深析.docx
深析C语言浮点型数据的输入输出.pdf
深析电子信息工程专业的课程体系.pdf
京东搜索排名规则深析干货PPT学习教案.pptx
深析-银行核心系统灾备技术架构.docx
深析光伏发电入网对电力系统的影响.pdf
电力系统安全运行状态下电力调度深析.pdf
深析高可用性防火墙的几个联网技术.pdf
深析:银行核心系统灾备技术架构(附案例)
深析高可用性防火墙的几个联网技术分享.pdf
新手入门一变频器大体电路原理深析(分享).pdf
电力系统安全运行状态下电力调度深析 (3).pdf
电力系统安全运行状态下电力调度深析 (1).pdf