话不多说,直接看示例代码
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<string> list); publicstring getoperation(){ returnoperation; } } //执行迭代操作的匿名类 statictest iteratetest = new test("iterate"){ publicvoid test(list<string> list){ for(inti=0; i<10; i++){ iterator<string>it = list.iterator(); while(it.hasnext()){ it.next(); } } } }; //执行随机访问的匿名类 statictest gettest = new test("get"){ publicvoid test(list<string> list){ for(inti=0; i<list.size(); i++){ for(intk=0; k<10; k++){ list.get(k); } } } }; //执行插入的匿名类 statictest inserttest = new test("insert"){ publicvoid test(list<string> list){ listiterator<string>it = list.listiterator(list.size()/2); for(inti=0; i<size; i++){ it.add("lion"); } } }; //执行删除的匿名类 statictest removetest = new test("remove"){ publicvoid test(list<string> list){ listiterator<string>it = list.listiterator(); while(it.hasnext()){ it.next(); it.remove(); } } }; staticpublic void testarray(list<string> list){ test[]tests = {iteratetest, gettest}; test(tests,list); } staticpublic void testlist(list<string> list){ test[]tests = {inserttest, iteratetest, gettest, removetest}; test(tests,list); } staticpublic void test(test[] tests, list<string> list){ for(inti=0; i<tests.length; i++){ system.out.print(tests[i].getoperation()+ "操作:"); longt1 = system.currenttimemillis(); tests[i].test(list); longt2 = system.currenttimemillis(); system.out.print(t2-t1+ "ms"); system.out.println(); } } publicstatic void main(string[] args){ list<string>list = null; //测试数组的迭代和随机访问操作 system.out.println("------测试数组------"); string[]tstr = new string[size]; arrays.fill(tstr,"lion"); list= arrays.aslist(tstr); testarray(list); tstr= new string[size/2]; collection<string>coll = arrays.aslist(tstr); //测试vector system.out.println("------测试vector------"); list= new vector<string>(); list.addall(coll); testlist(list); //测试linkedlist system.out.println("------测试linkedlist------"); list= new linkedlist<string>(); list.addall(coll); testlist(list); //测试arraylist system.out.println("------测试vector------"); list= new arraylist<string>(); list.addall(coll); testlist(list); } }
运行结果如图
从结果可以看出,对数组进行随机访问和迭代操作的速度是最快的;对linkedlist进行插入和删除操作的速度是最快的;对arraylist进行随机访问的速度也很快;vector类在各方面没有突出的性能,且此类已不提倡使用了。
总结
以上就是本文的全部内容,希望对大家学习或者使用java能有所帮助。如果有疑问可以留言讨论。
如对本文有疑问, 点击进行留言回复!!
现在微服务这么火,你还不了解吗?阿里P8推荐的微服务学习指南
论文笔记:SlowFast Networks for Video Recognition
网友评论