Java常用集合及集合框架的总结

今天这篇文章我们来总结下java中常用的集合他们的特点,区别以及使用场景,首先我们先通过一张图,认识下集合的框架构成,方便理解和记忆。

java常用集合框架图

(一)从图中可看到 Collection接口是集合框架的顶级接口,是Set和List的父接口,但不是Map的父接口。先来了解下Collection的方法。如图:

Collection的方法展示

Collection继承于Iterator,iterator()方法即为父类的方法。但是Collection的remove() 方法与Iterator()的方法有区别。

Collection的remove() 方法与Iterator()的方法的区别:

参数方面Collection的remove(Object)方法,里面有参数。Iterator()没有
性能方面

Iterator()的remove()方法效率高于Collection的remove(Object)方法,因为Collection的remove(Object)要一个一个去遍历并找到,才能移除。

 

而Iterator的remove()方法结合next()方法,每隔一项删除一项,效率更高。

容错方面

在使用Collection的remove(Object)方法会报异常,报ConCurrentMOdifacationException。因为集合的个数与Iterator内部对象保持不一致。

在使用iterator的remove()方法不会报错,因为iterator内部的集合个数与集合的个数保持一致。

 

 

(二)List集合

ArrayList与LinkedList的区别:

ArrayList

LinkedList

查询速度快,添加删除速度慢添加删除速度快,并且查询花销大,不适用于查询
数组结构链表结构

 

Array与ArrayList的区别:

①ArrayList是Array的复杂版本

②长度方面:Array的长度固定不变,而ArrayList的长度是可变的。

③存储的数据类型方面:Array只能存储相同数据类型的文章,而ArrayList可以存储不同数据类型的数据。

 

数组   ——  List

Arrays.toList(数组);

List —— 数组

list.toArray();

 

(三)Map集合

HashSet 、TreeSet、LinkedHashSet区别:

可以从集合的使用场景区分:

①需要速度快的集合,使用HashSet

②需要集合有排序功能,使用TreeSet

③需要按照插入的顺序集合存储集合,使用LinkedHashSet

 

HashMap、TreeMap、LinkedHashMap区别(同上面三个的区别差不多):

①在Map集合中插入,删除和定位元素,使用HashMap

②需要集合有排序功能,使用TreeMap

③需要按照插入的顺序集合存储集合,使用LinkedHashMap

HashSet和HashMap的区别:

HashMapHashSet
实现了Map接口实现了Set接口
存储键值对,所以HashMap相对于HashSet较快。存储对象,速度较慢
调用put()向map添加元素。HashMap使用key计算hashCode调用add()向set添加元素。HashSet使用成员对象计算hashCode

 

(四)List、Set、Map之间的区别:

List   SetMap
继承Collection继承Collection没有继承Collection
可以允许空的元素不允许空的元素键值对存储,键必须唯一,但是值可以重复
可以插入多个null值只允许一个null元素

键只允许一个null,键可以允许有多个null值

 

有序的容器无序的容器无序的容器

 

最后如果想要打乱一个集合中的元素,我总结了两种方法:

①调用collections.shuffle() 方法打乱顺序。

②或者利用for()循环,利用随机的下标。

好了,今天关于学习java的常用集合框架就分析到这里了,希望对各位有帮助。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值