Java:选择正确的集合

这是在应用程序中选择SetListMap的正确实现的快速指南。

最好的通用或“主要”实现可能是ArrayList,LinkedHashMap和LinkedHashSet。 它们的整体性能更好,除非您需要其他实现提供的特殊功能,否则应使用它们。 该特殊功能通常是排序或排序。

在这里,“排序”是指迭代器返回的项目的顺序,“排序”是指根据ComparableComparator对项目进行排序。

接口 有重复吗? 实作 历史的
没有 哈希集 LinkedHashSet * 树集
清单 ArrayList * 链表 向量堆栈
地图 没有重复的键 哈希图 LinkedHashMap * 树状图 哈希表属性

非主要实现的主要特征:

  • HashMap的性能比LinkedHashMap略好
  • HashSet的性能比LinkedHashSet略好
  • TreeSet已排序和排序,但速度较慢
  • TreeMap已排序和排序,但速度较慢
  • LinkedList可以快速添加到列表的开头,并且可以通过迭代从内部快速删除

以上实现的迭代顺序:

  • HashSet – 未定义
  • HashMap – 未定义
  • LinkedHashSet –插入顺序
  • LinkedHashMap –键的插入顺序(默认情况下)或“访问顺序”
  • ArrayList –插入顺序
  • LinkedList –插入顺序
  • TreeSet –按可比/比较器的升序
  • TreeMap –根据可比/比较器,键的升序

对于LinkedHashSet和LinkedHashMap,项目的重新插入不会影响插入顺序。

在地图或集合中使用时,这些项目不得更改状态(因此,建议这些项目是不可变的对象):

  • 地图键
  • 套装中的物品

排序要求:

要保留ORDER BY子句中指定的ResultSet的顺序,请将记录插入到List或LinkedHashMap中。

参考:Architect's Diary博客上,从我们的JCG合作伙伴 Sanjeev Kumar 选择合适的收藏


翻译自: https://www.javacodegeeks.com/2012/09/java-choosing-right-collection.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值