日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

存放80000000学生成绩的集合,怎么统计平均分性能高

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 存放80000000学生成绩的集合,怎么统计平均分性能高 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是雄雄,好久不介紹一下我,就被大家淡忘了……

我們都知道,遍歷集合的方式最常用的有兩種,一種是使用下標的方式遍歷,第二種便是使用foreach遍歷,代碼分別如下:

使用下標的方法:

public?static?void?testGetIndex(){int?num = 5;//聲明集合List<Integer> lists = new?ArrayList<Integer>(num);//給集合中賦值(0-150之間的隨機數)for?(int?i = 0; i < num; i++) {lists.add(new?Random().nextInt(150));}//使用下標遍歷for?(int?i = 0; i < lists.size(); i++) {System.out.print(lists.get(i)+" ");}}

結果如下:

使用foreach的方法:

public?static?void?testForeach(){int?num = 5;//聲明集合List<Integer> lists = new?ArrayList<Integer>(num);//給集合中賦值(0-150之間的隨機數)for?(int?i = 0; i < num; i++) {lists.add(new?Random().nextInt(150));}//使用下標遍歷for?(int?i :lists) {System.out.print(i+" ");}}

結果如下:

我們可以看到,這種方法在表面看起來區別不是很大,甚至可以說foreach遍歷的方法要比下標遍歷的方式還要簡單。

那如果我們從另一角度——比如性能方面來看它兩的區別呢,誰又更勝一籌?

下面我們來結合案例具體分析一下兩種方法在性能方面的差異:

某市有80000000學生,在某一次市內組織的考試后,接上面指示,需要對本市8千萬學生的成績進行統計并計算平均分。

案例很簡單,無外乎就是將8千萬學生的成績加起來除以8千萬,代碼如下:

public?static?void?test1(){int?num = 80*100000;List<Integer> score = new?ArrayList<Integer>(num);//隨機生成分數賦值到集合中for(int?i= 0;i<num;i++){score.add(new?Random().nextInt(150));}//開始記錄時間long?strat = System.currentTimeMillis();System.out.println("平均分是:"+avgForeach(score));long?end = System.currentTimeMillis();System.out.println("執行時間是:"+(end-strat)+"ms");}

注意看avg的方法,我們先用foreach的方法計算平均分,結果如下:

public?static?int?avgForeach(List<Integer> score){int?sum = 0;for(int?i : score){sum+=i;}return?sum/score.size();}

接下來我們使用下標的方法計算平均分,結果如下:

public?static?int?avgIndex(List<Integer> score){int?sum = 0;for(int?i=0;i<score.size();i++){sum+=score.get(i);}return?sum/score.size();}

可以看得出來,使用下標遍歷的方法要比使用foreach遍歷的方法要快許多

我們僅僅只是統計平均分,就相差46ms,如果有別的比如加權平均值、補充平均值等,花費時間會更長。

需要注意的是,在數據量小的情況下,無論哪種方式,性能差異不是很大!

案例靈感來自:《編寫高質量代碼:改善java程序的151個建議》

作者:秦小波

往期精彩

asList方法產生的List對象不可更改

2020-09-29

避開基本類型數組轉換列表陷阱

2020-09-28

java中最值的求法,你可能忽略了這種方法了!

2020-09-27

在明確的場景下,為集合指定初始容量

2020-09-26

警惕數組的淺拷貝

2020-09-25

若有必要,使用變長數組

2020-09-24

支持作者

贊賞就不用啦,生活都不易,右下角的“在看/贊”點一下,如果感覺文章不錯,記得分享到朋友圈讓更多人知道!

點分享

點點贊

點在看

總結

以上是生活随笔為你收集整理的存放80000000学生成绩的集合,怎么统计平均分性能高的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。