话不多说,直接看示例代码
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能有所帮助。如果有疑问可以留言讨论。



