国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

比較Java數組和各種List的性能小結

2019-11-26 13:55:26
字體:
來源:轉載
供稿:網友

話不多說,直接看示例代碼

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<String> list);     publicString getOperation(){       returnoperation;     }   }   //執(zhí)行迭代操作的匿名類   staticTest iterateTest = new Test("iterate"){     publicvoid test(List<String> list){       for(inti=0; i<10; i++){          Iterator<String>it = list.iterator();          while(it.hasNext()){            it.next();          }       }     }   };   //執(zhí)行隨機訪問的匿名類   staticTest getTest = new Test("get"){     publicvoid test(List<String> list){       for(inti=0; i<list.size(); i++){          for(intk=0; k<10; k++){            list.get(k);          }       }     }   };   //執(zhí)行插入的匿名類   staticTest insertTest = new Test("insert"){     publicvoid test(List<String> list){       ListIterator<String>it = list.listIterator(list.size()/2);       for(inti=0; i<SIZE; i++){          it.add("lion");       }     }   };   //執(zhí)行刪除的匿名類   staticTest removeTest = new Test("remove"){     publicvoid test(List<String> list){       ListIterator<String>it = list.listIterator();       while(it.hasNext()){          it.next();          it.remove();       }     }   };   staticpublic void testArray(List<String> list){     Test[]tests = {iterateTest, getTest};     test(tests,list);   }   staticpublic void testList(List<String> list){     Test[]tests = {insertTest, iterateTest, getTest, removeTest};     test(tests,list);   }   staticpublic void test(Test[] tests, List<String> list){     for(inti=0; i<tests.length; i++){       System.out.print(tests[i].getOperation()+ "操作:");       longt1 = System.currentTimeMillis();       tests[i].test(list);       longt2 = System.currentTimeMillis();       System.out.print(t2-t1+ "ms");       System.out.println();     }   }   publicstatic void main(String[] args){          List<String>list = null;     //測試數組的迭代和隨機訪問操作     System.out.println("------測試數組------");     String[]tstr = new String[SIZE];     Arrays.fill(tstr,"lion");     list= Arrays.asList(tstr);     testArray(list);          tstr= new String[SIZE/2];     Collection<String>coll = Arrays.asList(tstr);          //測試Vector     System.out.println("------測試Vector------");     list= new Vector<String>();     list.addAll(coll);     testList(list);          //測試LinkedList     System.out.println("------測試LinkedList------");     list= new LinkedList<String>();     list.addAll(coll);     testList(list);          //測試ArrayList     System.out.println("------測試Vector------");     list= new ArrayList<String>();     list.addAll(coll);     testList(list);   }}

運行結果如圖

從結果可以看出,對數組進行隨機訪問和迭代操作的速度是最快的;對LinkedList進行插入和刪除操作的速度是最快的;對ArrayList進行隨機訪問的速度也很快;Vector類在各方面沒有突出的性能,且此類已不提倡使用了。

總結

以上就是本文的全部內容,希望對大家學習或者使用Java能有所幫助。如果有疑問可以留言討論。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 普陀区| 水城县| 南昌县| 营山县| 贵州省| 永吉县| 江陵县| 许昌县| 田东县| 安仁县| 桃江县| 百色市| 泾源县| 蒙山县| 宾阳县| 江都市| 德州市| 吉隆县| 灵武市| 横山县| 莆田市| 固始县| 林芝县| 皋兰县| 崇信县| 东至县| 从化市| 永和县| 麻城市| 贞丰县| 桃江县| 虎林市| 克什克腾旗| 长乐市| 泾源县| 柳河县| 嵊泗县| 株洲市| 新龙县| 金昌市| 蒲江县|