LinkedList ArrayList测试

下面测试他们的性能 如何 

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()) ;
	}
	
	
	
}

  

原文地址:https://www.cnblogs.com/chuiyuan/p/4338940.html