一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 比較Java數(shù)組和各種List的性能小結(jié)

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

2020-06-08 11:50daisy JAVA教程

這篇文章主要是分別對(duì)Java數(shù)組、ArrayList、LinkedList和Vector進(jìn)行隨機(jī)訪問和迭代等操作,并比較這種集合的性能。有需要的可以參考借鑒。

話不多說(shuō),直接看示例代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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í)行隨機(jī)訪問的匿名類
   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;
     //測(cè)試數(shù)組的迭代和隨機(jī)訪問操作
     System.out.println("------測(cè)試數(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);
     
     //測(cè)試Vector
     System.out.println("------測(cè)試Vector------");
     list= new Vector<String>();
     list.addAll(coll);
     testList(list);
     
     //測(cè)試LinkedList
     System.out.println("------測(cè)試LinkedList------");
     list= new LinkedList<String>();
     list.addAll(coll);
     testList(list);
     
     //測(cè)試ArrayList
     System.out.println("------測(cè)試Vector------");
     list= new ArrayList<String>();
     list.addAll(coll);
     testList(list);
   }
}

運(yùn)行結(jié)果如圖

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

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

總結(jié)

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

延伸 · 閱讀

精彩推薦
  • JAVA教程JVM Tomcat性能實(shí)戰(zhàn)(推薦)

    JVM Tomcat性能實(shí)戰(zhàn)(推薦)

    下面小編就為大家?guī)?lái)一篇JVM Tomcat性能實(shí)戰(zhàn)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧 ...

    jingxian5072020-05-01
  • JAVA教程Java經(jīng)典用法總結(jié)(二)

    Java經(jīng)典用法總結(jié)(二)

    這篇文章主要介紹了Java經(jīng)典用法總結(jié),在本文中,盡量收集一些java最常用的習(xí)慣用法,特別是很難猜到的用法,本文重點(diǎn)講解了java應(yīng)用和輸入輸出常用方...

    lijiao3352020-03-28
  • JAVA教程android中GridView的用法示例

    android中GridView的用法示例

    這篇文章主要介紹了android中GridView的用法,對(duì)于Android初學(xué)者很有參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下 ...

    shichen20141642019-11-26
  • JAVA教程JVM的垃圾回收算法工作原理詳解

    JVM的垃圾回收算法工作原理詳解

    這篇文章主要介紹了JVM的垃圾回收算如何判斷對(duì)象是否可以被回收,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,...

    clawhub2572019-06-30
  • JAVA教程詳解Java中StringBuffer類常用方法

    詳解Java中StringBuffer類常用方法

    這篇文章主要為大家介紹了java中StringBuffer類常用方法 ...

    xu佳佳3992020-03-22
  • JAVA教程Java中枚舉的使用詳解

    Java中枚舉的使用詳解

    這篇文章主要介紹了Java中枚舉的使用詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下 ...

    ~~火雨4822020-05-31
  • JAVA教程java簡(jiǎn)單坦克大戰(zhàn)制作代碼

    java簡(jiǎn)單坦克大戰(zhàn)制作代碼

    這篇文章主要介紹了java簡(jiǎn)單坦克大戰(zhàn)制作代碼,利用Java語(yǔ)言中的集合、Swing、線程等知識(shí)點(diǎn)編寫一個(gè)坦克大戰(zhàn)游戲,需要的朋友可以參考下 ...

    java教程網(wǎng)4172020-05-27
  • JAVA教程java基本教程之Thread中start()和run()的區(qū)別 java多線程教程

    java基本教程之Thread中start()和run()的區(qū)別 java多線程教程

    這篇文章主要介紹了Thread中start()和run()的區(qū)別,Thread類包含start()和run()方法,它們的區(qū)別是什么?下面將對(duì)此作出解答 ...

    java教程網(wǎng)4602019-10-31
主站蜘蛛池模板: 草草剧场| 国产精品日本亚洲777 | 果冻传媒在线播放观看228集 | 亚洲男人天堂2023 | 免费久久久久 | 日韩欧一级毛片在线播无遮挡 | 呜嗯啊野战h呻吟男男双性 污小说在线阅读 | 久草热在线 | 青青草原伊人网 | 18国产精品白浆在线观看免费 | 青青草色 | gogo人体模特啪啪季玥图片 | ipx 在线播放| 青青青手机视频 | 日韩欧美亚洲一区二区综合 | 日本三级成人中文字幕乱码 | 天天爱天天操天天射 | 性刺激欧美三级在线现看中文 | 欧美精品久久久久久久免费观看 | 亚洲国产综合自在线另类 | 人人最怕九月羊 | 欧乱色国产精品兔费视频 | 国产欧美精品一区二区三区四区 | 黑人与欧洲女子性大战 | 日本视频一区在线观看免费 | 国产成人精视频在线观看免费 | 国产精品久久久久久久牛牛 | 男人猛戳女人下部30分钟 | 91啪在线观看国产在线 | 亚洲视频在线一区二区三区 | 99精品视频免费 | 高中生放荡日记高h娜娜 | 国产精品久久久久久久久免费hd | 五月天婷婷网亚洲综合在线 | 丝袜捆绑调教视频免费区 | 日本高清视频网站 | a级黄色视屏 | 欧美视频一区二区三区在线观看 | 无限韩国视频免费播放 | 四虎国产精品视频免费看 | 搡60一70岁的老女人小说 |