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

网友投稿 240 2023-07-08


比较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

for(intk=0; k<10; k++){

list.get(k);

}

}

}

};

//执行插入的匿名类

staticTest insertTest = new Test("insert"){

publicvoid test(List list){

ListIteratorit = list.listIterator(list.size()/2);

for(inti=0; i

it.add("lion");

}

}

};

//执行删除的匿名类

staticTest removeTest = new Test("remove"){

publicvoid test(List 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; 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){

Listlist = 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);

}

}

运行结果如图

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

总结

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

for(intk=0; k<10; k++){

list.get(k);

}

}

}

};

//执行插入的匿名类

staticTest insertTest = new Test("insert"){

publicvoid test(List list){

ListIteratorit = list.listIterator(list.size()/2);

for(inti=0; i

it.add("lion");

}

}

};

//执行删除的匿名类

staticTest removeTest = new Test("remove"){

publicvoid test(List 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; 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){

Listlist = 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);

}

}

运行结果如图

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

总结

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

it.add("lion");

}

}

};

//执行删除的匿名类

staticTest removeTest = new Test("remove"){

publicvoid test(List 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; 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){

Listlist = 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);

}

}

运行结果如图

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

总结

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

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){

Listlist = 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);

}

}

运行结果如图

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

总结

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:郁闷!ionic中获取ng
下一篇:ionic实现带字的toggle滑动组件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~