Java collection 集合 容器 效率问题

本文通过实验对比了不同集合类(如ArrayList、HashMap等)在添加、查找、遍历和删除操作上的性能表现,揭示了各种集合类的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是关于 集合效率的问题
一万条一下的数据 差距忽略不计。随便用谁都行。
List : 可重复
Set : 不可重复
Map: key不可重复 value 可重复

操作     添加    遍历  随机查找   特殊功能
Hash:   快       快       快      无序    当遍历时,entrySet对key做了排序,所以你用entrySet遍历是有序的
Linked:  快      快      慢      有序    存取顺序一致,不该改变。
Tree:   中       快      慢      有序    安装自然顺序输出(1,2,3…a,b,c,d...) 。

效率最高的 ArrayList 和 HashMap
除了特殊情况,一般建议用上面两种。

下面是数据的测试,等号后面代表执行花费时间 毫秒为单位:
一百万 条简单数据

List                    Map                     Set
=========add==========
ArrayList=23        HashMap=169             HashSet=1735
LinkedList=108      TreeMap=1809            TreeSet=1273
Vector=35           LinkedHashMap=1057      LinkedHashSet=2377
=======find=======  
ArrayList=43        HashMap=250             HashSet=50
LinkedList=巨慢      TreeMap=819              TreeSet=47
Vector=54           LinkedHashMap=253       LinkedHashSet=41
=====list\set使用iterator()、Map使用entrySet遍历======
ArrayList=19        HashMap=31              HashSet=56
LinkedList=46       TreeMap=32              TreeSet=50
Vector=135          LinkedHashMap=29        LinkedHashSet=55

=======delete=======    
ArrayList=12        HashMap=41              HashSet=656
LinkedList=17       TreeMap=168             TreeSet=2154
Vector=32           LinkedHashMap=137       LinkedHashSet=225

十万 条简单数据

List                Map                 Set
=====================  添加 =====================   
ArrayList=7         HashMap=20              HashSet=125
LinkedList=5        TreeMap=40              TreeSet=135
Vector=6            LinkedHashMap=61        LinkedHashSet=53
=====================随机查找=====================  
ArrayList=11        HashMap=45              HashSet=14
LinkedList=9215     TreeMap=24              TreeSet=15
Vector=10           LinkedHashMap=19        LinkedHashSet=12

=====list\set使用iterator()、Map使用entrySet遍历======
ArrayList=9         HashMap=15              HashSet=11
LinkedList=4        TreeMap=10              TreeSet=9
Vector=5            LinkedHashMap=8         LinkedHashSet=7

==================== 删除   ====================    
ArrayList=9         HashMap=16              HashSet=315
LinkedList=7        TreeMap=27              TreeSet=79
Vector=31           LinkedHashMap=10        LinkedHashSet=49
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值