标签:
下面测试他们的性能 如何
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class ListTest {
private static final int REPS =100;
private abstract static class Tester {
String name ;
int size ;
Tester(String name , int size ){
this.name= name ;
this.size = size ;
}
abstract void test(List a ) ;
}
//测试的一个数组
private static Tester [] tests ={
new Tester("get" , 300) {
void test(List a) {
for (int i =0; i<REPS ; i++){
for (int j =0; j< a.size(); j++){
a.get(j) ;
}
}
}
},
new Tester("iteration",300) {
void test(List a) {
for (int i =0; i<REPS ; i++){
Iterator it = a.iterator() ;
while (it.hasNext()) {
it.next() ;
}
}
}
},
new Tester("insert" , 1000) {
void test(List a) {
int half = a.size()/2;
String s = "test" ;
ListIterator it = a.listIterator() ;
for (int i =0; i<size*10; i++){
it.add(s) ;
}
}
},
new Tester("remove", 5000) {
void test(List a) {
ListIterator it = a.listIterator(3) ;
while (it.hasNext()) {
it.next() ;
it.remove() ;
}
}
},
} ;
public static void test (List a ){
System.out.println("testing"+ a.getClass().getName()) ;
for (int i =0;i< tests.length; i++){
//collections中的fill方法:使用指定元素替换指定列表中的所有元素
Collections.fill(a, tests[i]) ;
System.out.print(tests[i].name) ;
long t1 = System.currentTimeMillis() ;
tests[i].test(a);
long t2 = System.currentTimeMillis() ;
System.out.println(":"+ (t2-t1));
}
}
public static void main (String [] args ){
test(new ArrayList ()) ;
test(new LinkedList()) ;
}
}
标签:
原文地址:http://www.cnblogs.com/chuiyuan/p/4338940.html