Java中List效率的比较

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish )。

  Java Collections Framework(JCF) 是Java SE中一个基本的类集,几乎所有的项目都会用到,其中的List 则是JCF中最最常用的一个接口。围绕List 接口,有很多实现,诸如常用的ArrayListLinkedListVectorStack ,还有Java5之后引入的CopyOnWriteArrayList ,也有不少List 的开源实现,如Apache commons-collections中的各类List(来源:http://blog.csdn.net/inkfish)

  这么多的List 实现,如何选择?他们的运行效率具体怎样?本篇文章将用具体的代码来检测其中最最常用的一些List 实现。(来源:http://blog.csdn.net/inkfish)

测试环境:
  处理器:Intel Core 2 Duo P8600 2.4GHz
  内存:2G
  硬盘:160G 7200rpm
  Java:SUN JDK 1.6.0_15
  开发环境:Eclipse 3.5
  第三方类库:Apache commons-lang 2.4、Apache commons-collections 3.2.1(来源:http://blog.csdn.net/inkfish)

主要测试对象:
  java.util.ArrayList;
  java.util.LinkedList;
  java.util.Stack;
  java.util.Vector;
  java.util.concurrent.CopyOnWriteArrayList;
  org.apache.commons.collections.FastArrayList;
  org.apache.commons.collections.list.TreeList;
(来源:http://blog.csdn.net/inkfish)

测试用例:
  1.测试List
   1.1顺序添加
   1.2随机插入
   1.3随机删除
   1.4随机访问
   1.5随机更新
   1.5顺序迭代
  2.测试List 在三种情况下的排序效率
   2.1初始时List 中元素已从小到大有序排列(最优情况)
   2.2初始时List 中元素已从大到小有序排列(最差情况)
   2.3初始时List 中元素随机排列,无序
  3.测试List 互相转换的效率
   3.1转化为TreeList
   3.2转化为ArrayList
   3.3转化为LinkedList
   3.4转化为CopyOnWriteArrayLis

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
JavaList是一种常用的集合类型,用于存储一组有序的元素。List接口继承自Collection接口,并且有多个实现类,比如ArrayList和LinkedList。\[1\] ArrayList是基于数组实现的,它的插入和查询操作效率较高,但是在删除和插入元素时需要移动其他元素,效率较低。\[2\] LinkedList是基于链表实现的,它的插入和删除操作效率较高,但是在查询元素时需要遍历链表,效率较低。\[3\] 在使用List时,我们可以通过调用add方法向List添加元素,通过调用remove方法删除元素,通过调用get方法获取指定位置的元素,通过调用size方法获取List的大小,通过调用forEach方法遍历List的元素等等。List还提供了其他一些常用的方法,比如contains、indexOf、subList等等,可以根据具体需求选择使用。 总之,ListJava非常常用的集合类型,可以用于存储和操作一组有序的元素。在选择使用ArrayList还是LinkedList时,需要根据具体的需求和操作频率来进行选择。 #### 引用[.reference_title] - *1* [【Java基础】JavaList集合的常用方法](https://blog.csdn.net/yubao0723/article/details/130300278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java集合-List](https://blog.csdn.net/weixin_43200566/article/details/128118293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值