JAVA 集合性能特性汇总

JAVA集合平时使用较多的是ArrayList和HashMap,其实还有很多不常用的,总结下其特点和性能,以备使用

 1.  Set有2种典型实现,HashSet 和 TreeSet, TreeSet就是排序的的Set,由于TreeSet内部需要红黑算法树来维持其排序,添加和查询方面HashSet都优于TreeSet,通常除非需要一个排序的Set情况外,都使用HashSet。HashSet还有个子类LinkedHashSet,带链表的HashSet,自然它的优势是遍历,但相对的插入删除操作性能就会比较差。最后一种叫EnumSet,里面只能存一种枚举,性能最好。

2.  线性表接口List,两种实现ArrayList(Vertor和ArrayList类似,已经很少使用)和LinkedList,一个基于数组一个基于链表,同样的,除非是很care遍历性能的情况外,都使用ArrayList,ArrayList使用连续内存保持数据,随机访问的性能最佳。

3.   对于Map,最常用的HashMap在大多数情况下性能是最好的,Hashtable是线程安全版的HashMap,由于增加了线程安全所以性能稍差,TreeMap更慢,但由于其排序性,取出Keyset后转换成Array就直接是排好序了,LinkedHashMap极少使用,实在没什么优点(拿Map做遍历?)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值