亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

比較Java數(shù)組和各種List的性能小結(jié)

 更新時間:2016年08月28日 08:45:10   投稿:daisy  
這篇文章主要是分別對Java數(shù)組、ArrayList、LinkedList和Vector進行隨機訪問和迭代等操作,并比較這種集合的性能。有需要的可以參考借鑒。

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

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;
     //測試數(shù)組的迭代和隨機訪問操作
     System.out.println("------測試數(shù)組------");
     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);
   }
}

運行結(jié)果如圖

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

總結(jié)

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

相關(guān)文章

  • JSON在Java中的使用方法實例

    JSON在Java中的使用方法實例

    對于java來說,json的對象也是分為JSONObject和JSONArray這兩種,每種對象的操作方式不一樣哦,下面這篇文章主要給大家介紹了關(guān)于JSON在Java中使用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Java中EnvironmentAware 接口的作用

    Java中EnvironmentAware 接口的作用

    本文主要介紹了Java中EnvironmentAware 接口的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Nett分布式分隔符解碼器邏輯源碼剖析

    Nett分布式分隔符解碼器邏輯源碼剖析

    這篇文章主要為大家介紹了Nett分布式分隔符解碼器邏輯源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • JavaWeb框架MVC設(shè)計思想詳解

    JavaWeb框架MVC設(shè)計思想詳解

    這篇文章主要介紹了JavaWeb框架MVC設(shè)計思想詳解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • java將圖片分割為幾個部分示例

    java將圖片分割為幾個部分示例

    這篇文章主要介紹了java將圖片分割為幾個部分示例,需要的朋友可以參考下
    2014-04-04
  • java 線程鎖詳細介紹及實例代碼

    java 線程鎖詳細介紹及實例代碼

    這篇文章主要介紹了java 線程鎖詳細介紹及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Java對象轉(zhuǎn)json的方法過程解析

    Java對象轉(zhuǎn)json的方法過程解析

    這篇文章主要介紹了Java對象轉(zhuǎn)json的方法過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Maven在Windows中的配置以及IDE中的項目創(chuàng)建實例

    Maven在Windows中的配置以及IDE中的項目創(chuàng)建實例

    下面小編就為大家?guī)硪黄狹aven在Windows中的配置以及IDE中的項目創(chuàng)建實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Spring Security OAuth 自定義授權(quán)方式實現(xiàn)手機驗證碼

    Spring Security OAuth 自定義授權(quán)方式實現(xiàn)手機驗證碼

    這篇文章主要介紹了Spring Security OAuth 自定義授權(quán)方式實現(xiàn)手機驗證碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • java加載properties文件的六種方法總結(jié)

    java加載properties文件的六種方法總結(jié)

    這篇文章主要介紹了java加載properties文件的六種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論