集合基本区别list、set、map

Collection在每个槽中只能保存一个元素,此容器包括:List、Set、Queue。

1、List:以特定的顺序保存一组元素。

  • ArrayList和LinkedList都是List类型,都是按照被插入的顺序保存元素
  • 两者不同之处不仅在于执行某些类型的操作时的性能,而且LinkedList包含的操作也多于ArrayList
  • ArrayList:长于随机访问元素,但是在List的中间插入和移除元素是较慢
  • LinkedList:通过代价较低的在List中间插入和删除操作,提供了优化的顺序访问。在随机访问方面相对较慢,但是它的特性集较ArrayList更大。

2、Set:元素不能重复,每个相同的项只保存一次。

  • HashSet:使用的是相当复杂的方式来存储元素的,这种技术是最快的获取元素方式,因此,存储顺序看起来并无实际意义,只会关心某事物是否是某个Set的成员,而不会关心它在Set出现的顺序。
  • 如果存储顺序很重要,可以使用TreeSet,它按照比较结果的升序保存对象。
  • LinkedHashSet:按照被添加的顺序保存对象。

3、Queue:只允许在容器的一“端”插入对象,并从另外一“端”移除对象。

Map:在每个槽内保存两个对象,即键与值。

  • HashMap:键和值在Map中的保存顺序并不是它们的插入顺序,因为HashMap实现使用的是一种非常快的算法来控制顺序。
  • TreeMap:按照比较结果的升序保存键。
  • LinkedHashMap:按照插入顺序保存键,同时保留了HashMap的查询速度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值