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

      

  • 相关阅读:
    检测一个对象方法是否存在
    非堵塞 延迟脚本 高性能
    移动开发 相关 备忘
    元素透明 渐变函数
    cookie
    media query 单位
    前端入门可参考《如何教会非计算机专业的女友写代码》
    JQ判断复选框是否选中
    聊天记录
    JS获取文本值
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4338940.html
Copyright © 2020-2023  润新知