容器的选择

本文详细解析了Java集合框架中的ArrayList、LinkedList、Vector、HashSet、TreeSet、HashMap、TreeMap、LinkedHashMap的性能特点及适用场景,帮助开发者根据实际需求做出最优选择。
摘要由CSDN通过智能技术生成
java思想笔记:

1.list
数组比所有list都快。
对于随即访问(get)ArrayList开销小于LinkedList,迭代遍历linkedList要比arraylist快,插入和删除元素,linkedlist比arraylist明显快很多,尤其删除。
Vector通常不如Arraylist尽量避免使用,它的存在原因是支持过去代码
最好arraylist作为默认首选,当程序性能因为经常从list中插入和删除而变差的时候再去选择LinkedList


2.Set
HashSet的性能总是比TreeSet好,特别是查询和添加元素操作。Treeset存在原因是他能维持元素的排序状态,所以,只有当你需要一个好的排序Set时候才选择Treeset
对于插入操作LinkedHashSet比hashset略慢,由于维护链表所造成的额外开销造成,不过遍历很快。


3.Map的选择:
HashTable和HashMap效率大致相同,TreeMap通常比Hashmap慢,Treemap你可以利用它生成一个排序好的队列,树的行为方式:总是处于排序状态,不需要对他进行排序。
当Treemap被填充之后,就可以调用keyset方法,取得由键组成的set,然后使用toArray生成键的数组,接下来使用static Array.binarySearch方法,在排序中的数组中快速找到对象,优先考虑使用hashmap因为它就是快速查询设计的。
LinkedHashMap比Hashmap慢一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值