文章出處

 

public class PerformanceTester {
public static final int TIMES=100000;

public static abstract class Tester{
private String operation;
public Tester(String operation){this.operation=operation;}
public abstract void test(List<String> list);
public String getOperation(){return operation;}
}

static Tester iteraTester=new Tester("iterate") {//執行迭代操作的匿名類

public void test(List<String> list) {
for(int i=0;i<10;i++){
Iterator<String> it=list.iterator();
while (it.hasNext()) {
it.next();

}

}

}

};
static Tester getTester=new Tester("get") {//執行隨機訪問操作的匿名類

public void test(List<String> list) {
for(int i=0;i<list.size();i++){
for(int j=0;j<10;j++ )
list.get(i);
}


}
};
static Tester insertTester=new Tester("insert") {//執行插入操作的匿名類
public void test(List<String> list) {
ListIterator<String> it=list.listIterator(list.size()/2);//從列表的中間開始
for(int i=0;i<TIMES/2;i++){
it.add("Hello");
}
}
};
static Tester removeTester=new Tester("remove") {//執行刪除操作的匿名類

public void test(List<String> list) {
ListIterator<String> it=list.listIterator();
while(it.hasNext()){
it.next();
it.remove();
}

}
};
static public void testJavaArray(List<String> list){
Tester[] testers={iteraTester,getTester};
test(testers, list);
}
static public void testList(List<String> list){
Tester[] testers={insertTester,iteraTester,getTester,removeTester};
test(testers,list);
}
private static void test(Tester[] testers, List<String> list) {
for(int i=0;i<testers.length;i++){
System.out.print(testers[i].getOperation()+"操作: ");
long t1=System.currentTimeMillis();
testers[i].test(list);
long t2=System.currentTimeMillis();
System.out.print(t2-t1+" ms");
System.out.println();
}

}
public static void main(String[] args) {
List<String> list=null;

//測試Java數組
System.out.println("----測試Java數組----");
String[] ss=new String[TIMES];
Arrays.fill(ss, "Hello");
list=Arrays.asList(ss);
testJavaArray(list);
ss=new String[TIMES/2];

Collection<String> col=Arrays.asList(ss);

//測試Vector
System.out.println("----測試Vector----");
list=new Vector<String>();
list.addAll(col);
testList(list);

//測試LinkedList
System.out.println("----測試LinkedList----");
list=new LinkedList<String>();
list.addAll(col);
testList(list);

//測試ArrayList
System.out.println("----測試ArrayList----");
list=new ArrayList<String>();
list.addAll(col);
testList(list);

}

}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()