栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

比较Java数组和各种List的性能小结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

比较Java数组和各种List的性能小结

话不多说,直接看示例代码

package cn.lion.test;
public class PerformanceTest {
   
   privatestatic final int SIZE =100000;
   publicstatic abstract class Test{
     privateString operation;
     publicTest(String operation){
this.operation= operation;
     }
     publicabstract void test(List list);
     publicString getOperation(){
returnoperation;
     }
   }
   //执行迭代操作的匿名类
   staticTest iterateTest = new Test("iterate"){
     publicvoid test(List list){
for(inti=0; i<10; i++){
   Iteratorit = list.iterator();
   while(it.hasNext()){
     it.next();
   }
}
     }
   };
   //执行随机访问的匿名类
   staticTest getTest = new Test("get"){
     publicvoid test(List list){
for(inti=0; i list){
ListIteratorit = list.listIterator(list.size()/2);
for(inti=0; i list){
ListIteratorit = list.listIterator();
while(it.hasNext()){
   it.next();
   it.remove();
}
     }
   };
   staticpublic void testArray(List list){
     Test[]tests = {iterateTest, getTest};
     test(tests,list);
   }
   staticpublic void testList(List list){
     Test[]tests = {insertTest, iterateTest, getTest, removeTest};
     test(tests,list);
   }
   staticpublic void test(Test[] tests, List list){
     for(inti=0; ilist = null;
     //测试数组的迭代和随机访问操作
     System.out.println("------测试数组------");
     String[]tstr = new String[SIZE];
     Arrays.fill(tstr,"lion");
     list= Arrays.asList(tstr);
     testArray(list);
     
     tstr= new String[SIZE/2];
     Collectioncoll = Arrays.asList(tstr);
     
     //测试Vector
     System.out.println("------测试Vector------");
     list= new Vector();
     list.addAll(coll);
     testList(list);
     
     //测试linkedList
     System.out.println("------测试linkedList------");
     list= new linkedList();
     list.addAll(coll);
     testList(list);
     
     //测试ArrayList
     System.out.println("------测试Vector------");
     list= new ArrayList();
     list.addAll(coll);
     testList(list);
   }
}

运行结果如图

从结果可以看出,对数组进行随机访问和迭代操作的速度是最快的;对linkedList进行插入和删除操作的速度是最快的;对ArrayList进行随机访问的速度也很快;Vector类在各方面没有突出的性能,且此类已不提倡使用了。

总结

以上就是本文的全部内容,希望对大家学习或者使用Java能有所帮助。如果有疑问可以留言讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/149340.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号