集合总览--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即是这个接口下的,其实在这个接口和实现类中,还存在大量的内部类,这些内部类充当着原子的操作,在结构上给予集合类构件的基础。

同时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散列之后的值将存储元素存储在列表中相应的桶内。

 

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值