集合总览--Collection框架整体解析

Collection简述:

JDK中java.util包下,是JDK为java开发提供的常用工具类,在这些工具类中,java本身对常用的数据结构进行了封装,在JDK1.2版本中引入了collection框架,使得java开发者不再需要自行进行部分数据结构的设计。

       在collection框架中有我们常用的诸如:ArrayList、HashMap、Vector等,每种集合结构为我们提供了不一样的功能,首先来看看java.util包中集合框架的结构,在这个结构中包括非collection框架的Map接口和Dictionary接口相关:

Collection接口相关:


Map接口相关:


Dictionary接口相关:


框架详解:

可以说Java的集合框架是由Collection、Map、Dictionary接口及其实现类共同构成的,在Collection中提供了单元素的线性操作,而Map提供了K,V形式的存储结构,Dictionary是JDK1.0引入的集合接口,现在常用Properties即是这个接口下的,其实在这个接口和实现类中,还存在大量的内部类,这些内部类充当着原子的操作,在结构上给予集合类构件的基础。

扫描二维码关注公众号,回复: 11363084 查看本文章

同时Collection接口实现了Iterable接口,对于实现了Iterable接口的类,在遍历集合时,可以使用JDK1.7中引入的增强for循环进行集合遍历。

       几种常用的集合类简介:

ArrayList:ArrayList的底层使用数组维护集合中的元素,所以ArrayList类在数组使用的基础上进行了封装,ArrayList拥有数组的一切特性,如:遍历速度快,使用索引(下标)进行访问,精确的控制元素的插入位置,同时基于数组的ArrayList存在的弊端是插入和删除速度较慢,原因是当插入或删除一个元素后,当前位置之后的元素都需要在底层数组中向后递推,而且可能会导致ArrayList底层数组的重构。

       Vector:Vector是ArrayList的一个synchronized版本,与ArrayList继承的接口和实现类都是一样的,在内部实现上,与ArrayList相同的方法中,加入了synchronized同步机制,使得在多线程环境下,可以安全使用。除去synchronized安全同步机制之外,vectoer与ArrayList几乎是相同的,无论是初始大小还是增长曲线方面。

HashSet:虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在 HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。

HashMap:Map 是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。HashMap的接口是基于数组和链表实现的,数组中的每个元素即使所谓的桶,当存储元素时,会根据hash散列之后的值将存储元素存储在列表中相应的桶内。


后续请关注类图中各个类的详解。

猜你喜欢

转载自blog.csdn.net/securitit/article/details/46875635