全部那些数据结构在 java.util 包里,包蕴了 Collection、List、Set、Map、SortedMap 接口。这么些接口的兑现类有 LinkedList、TreeSet、ArrayList、HashMap 等。除了这一个数据结构,java.util 包还提供了 Date、GregorianCalender、StringTokenizer、Random 那样的工具类。
Collection:根接口,超越一59%据结构都完毕了 Collection 接口中的方法
Collection 承继体系(图片来源Wikipedia)
HashSet:实现 Set 接口,不容许再度的要素,底层数据结构 hash table
TreeMap:达成 SortedMap 接口,不容许再一次的 key,底层数据结构红黑树
运作时类型检查:集合框架在运转时会抛出十三分,必要编制程序时多加注意
聚拢框架宗旨接口及完成类:
在接口与现实的兑现类之间还会有局地抽象类,如下图:
可以依据接口、实现、算法四个地点对聚焦框架中的数据结构进行归类:
Vector:完成 List 接口,允许再一次元素,底层数据结构可变数组
SortedMap:承继了 Map 接口,存款和储蓄键值对,不容许再一次的 key,暗许同按 key 升序打字与印刷成分,举例 TreeMap
互操作与调换:由于完毕了 Collection 接口,数据结构之间是足以互相调换的。能够 clone,能够把现存的协会转成 synchronized 版本,仍然是能够在把依据链表的数据结构转为基于数组的布局
LinkedHashSet:完结 Set 接口,不相同意再一次的元素,底层数据结构 hash table 与双链表
HashMap:完毕 Map 接口,不允许再度的 key,底层数据结构 hash table
算法:集结框架提供了非常多方可平昔调用的算法,比方求最大十分小值、排序、填充等
TreeSet:实现 NavigableSet 接口,不允许再一次的因素,底层数据结构红黑树
java.util 中的数据结构承袭种类分为两大类,一类已毕了 Collection 接口,一类完结了 Map 接口。
接口:Collection、List、Map 组成了汇集框架中全数具体贯彻类的接口,它们定义了子类必得落实的情势,相当好记。例如向集结添比索素,会用到 Collection 中定义的 add() 方法
JDK1.2 引入了 Java 集合框架,包蕴一组数据结构。与数组分化,那一个数据结构的存款和储蓄空间会随着成分增添动态扩展。当中,一些支撑增加重复成分另一部分不协理,一些协理null,一些能活动升序打字与印刷成分。
这个抽象类为汇集扩大了累累成效:
减去职业量的同临时间增添了软件的可用性:无需种种程序猿动手实现排序、查找、寻找成分在数据结构中出现的次数
Map:完结 Map 接口的数据结构存款和储蓄键值对,分裂意再度的 key,举例HashMap、LinkedHashMap、Hashtable
Set:实现 Set 接口的数据结构不允许再一次的因素,举例HashSet、LinkedHashSet
LinkedList:达成 List 接口,允许再度成分,底层数据结构双链表
SortedSet 与 SortedMap 暗中同意的排序是自然序,可经过 Comparator 或 Comparable 接口落成自定义排序。
得以完毕:全部实现了上述3个接口的类,都被称作群集框架,实际上便是数据结构。譬如LinkedList、TreeSet 等
有以下4个优点
LinkedHashMap:达成 Map 接口,分裂意再次的 key,底层数据结构 hash table 与双链表
有以下2个缺点
小心类型转变:在集聚框架类之间举行更动时要大大地小心,尤其要思考泛型类型的包容性
实行进程更加快更漫长:集结框架的平底数据结构分为两类,基于节点的和基于数组的,前边贰个在每每增添时效能更高,前者在频仍读取时速度越来越快。一些数据结构是 synchronized 线程安全的,但会潜濡默化进程有,另一部分则不是线程安全的。工程师在接纳数据结构前要通晓地打听这几个成分
List:完毕 List 接口的数据结构允许再次成分,可透过 index 访问成分,比如LinkedList、ArrayList、Vector
Map 传承体系(图片来源于Wikipedia)
ArrayList:达成 List 接口,允许再度元素,底层数据结构可变数组
SortedSet:完成 SortedSet 接口的数据结构默承认按升序打字与印刷成分,例如TreeSet
HashTable:实现 Map 接口,分歧意再一次的 key,底层数据结构 hash table
本文由彩世界注册首页发布于彩世界彩票注册平台官网,转载请注明出处:一文快速了解Java集合框架彩世界彩票注册平台官