日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java優化for循環嵌套的高效率方法

瀏覽:26日期:2022-08-24 16:51:47

前幾天有人問過我一個問題,就是兩個嵌套for循環執行效率的問題,問有什么好的辦法替換。當時我想了想,實在想不起來,哎,慚愧!!! 請教了答案,恍然大悟。

比如:兩個list中分別裝有相同的對象數據。 list1中有3萬條對象數據。 list2中有2萬條對象數據(但是對象中的某個屬性變量為空)。兩個list中的id或者其他變量都一模一樣。請用最快的方式找出list2中變量為空的那個對象,并且去list1中找出id相同的對象。 或者可以理解成,從list2中找出變量為空的,去list1中找出對應的對象,然后把為空的列補上。總之就是這么一個意思,先 for 循環 list2,判斷一下每個對象的那個屬性變量是否為空,如果為空,再去for循環list1,找出id一樣的對象,就算執行成功了。

那么請看下邊的for循環嵌套的解決方式:

for(Member m2:list2){ if(m2.getName()==null){ for(Member m1:list1){ if(m1.getId().intValue()==m2.getId().intValue()){ System.out.println(m2.getId()+' Name 值為空!!!'); } } }}

這樣真的好嗎? 如果有上萬,甚至十幾萬的數據,那么這個執行效率問題,我就不多說了。 非常非常的慢。

下邊來看使用map代替的執行方式,以及兩種方式的效率對比:

import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.concurrent.TimeUnit; class Member { private Integer id; private String name; private Integer age; private Date addDate; public Member() { } public Member(Integer id, String name, Integer age, Date addDate) { super(); this.id = id; this.name = name; this.age = age; this.addDate = addDate; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getAddDate() { return addDate; } public void setAddDate(Date addDate) { this.addDate = addDate; } } public class For2 { public static void main(String[] args) throws InterruptedException { List<Member> list1 = new ArrayList<>(); List<Member> list2 = new ArrayList<>(); for(int i=0;i<30000;i++){ Date date = new Date(); list1.add(new Member((i+1),'技術客',(i+1), date)); if(i%2==0){ list2.add(new Member((i+1),null,(i+1), date)); } } //雙for循環嵌套測試 long s1 = System.currentTimeMillis(); int forNumber = 0; for(Member m2:list2){ if(m2.getName()==null){ for(Member m1:list1){ if(m1.getId().intValue()==m2.getId().intValue()){// System.out.println(m2.getId()+' Name 值為空!!!'); forNumber++; } } } } long s2 = System.currentTimeMillis(); System.out.println('雙for循環查詢時間為:'+(s2-s1)+'(毫秒),一共查詢出'+forNumber+'條數據 nnn'); TimeUnit.SECONDS.sleep(3); //map查詢測試 long s3 = System.currentTimeMillis(); int mapNumber = 0; Map<Integer, Member> map = new HashMap<>(); for(Member m1:list1){ map.put(m1.getId(), m1); } for(Member m2:list2){ if(m2.getName()==null){ Member m = map.get(m2.getId()); if(m!=null){// System.out.println(m2.getId()+' Name 值為空!!!'); mapNumber++; } } } long s4 = System.currentTimeMillis(); System.out.println('使用map結構查詢時間為:'+(s4-s3)+'(毫秒),一共查詢出'+mapNumber+'條數據 nnn'); } }

輸出結果:

雙for循環查詢時間為:1578(毫秒),一共查詢出15000條數據 使用map結構查詢時間為:14(毫秒),一共查詢出15000條數據

如果我們模擬10萬條數據,然后其中五千條重復數據的情況下:效率更是天壤之別。

看輸出結果:

雙for循環查詢時間為:30929(毫秒),一共查詢出50000條數據 使用map結構查詢時間為:24(毫秒),一共查詢出50000條數據

循環數據越小,兩者差別也就越小,但是數據量越大,差別也就越大。 10萬條數據的差別竟然達到上千倍!

以上就是Java優化for循環嵌套的高效率方法的詳細內容,更多關于Java 優化 for循環的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品人人| 国产一区二区三区探花| 精品亚洲美女网站| 国产精品v一区二区三区| 亚洲精品日韩久久| 亚洲综合日韩| 亚洲综合日本| 亚洲日本国产| 亚洲精品黄色| 欧美亚洲人成在线| 热久久久久久| 麻豆视频一区二区| 中日韩男男gay无套| 亚洲精品护士| 亚洲欧美在线专区| 亚洲欧洲一区二区天堂久久| **爰片久久毛片| 国产一区2区| 国产欧美日韩一区二区三区四区 | 国产精品久久久久久久久久久久久久久| 日韩av二区| 午夜久久免费观看| 日韩国产一区二区| 久久精品播放| 色综合视频一区二区三区日韩 | 一本一道久久a久久| 欧美激情五月| 日本aⅴ精品一区二区三区| 日韩中文影院| 久久国产中文字幕| 亚洲成人免费| 国产伦理一区| 精品72久久久久中文字幕| 中文字幕高清在线播放| 蜜桃久久久久| 精品三区视频| 国产高潮在线| 国产亚洲一级| 国产欧美69| 国产在线一区不卡| 99精品在线观看| 一区二区三区网站| 久久一区欧美| 免费不卡在线观看| 香蕉久久99| 99国产精品免费视频观看| 色偷偷色偷偷色偷偷在线视频| 国产成人精品免费视| 欧美成人基地| 99成人在线视频| 岛国av在线网站| 免费日韩一区二区三区| 亚洲国产一区二区三区在线播放 | 日韩专区欧美专区| 水蜜桃久久夜色精品一区| 日韩av黄色在线| 国产在线观看www| 亚洲精品日本| 在线一区免费| 国产伦精品一区二区三区视频| 亚洲不卡视频| 91精品国产福利在线观看麻豆| 深夜福利视频一区二区| 在线一区电影| 青青草91视频| 热三久草你在线| 免费在线亚洲| 麻豆9191精品国产| 国产精品高清一区二区| 1024精品一区二区三区| 亚洲女同中文字幕| 97久久中文字幕| 日韩av一区二区在线影视| 国产一区二区三区久久久久久久久| 久久久久久色 | 久久av超碰| 五月天久久777| 久久国内精品自在自线400部| 日本一二区不卡| 红桃视频国产精品| 精品国产亚洲一区二区三区在线| 欧美在线网站| 麻豆久久久久久| 国产免费成人| 美日韩一区二区三区| 欧美.日韩.国产.一区.二区| 亚洲精品无吗| 美腿丝袜亚洲三区| 亚洲在线网站| 国产va免费精品观看精品视频| 红桃视频国产一区| 精品一区二区三区四区五区| 亚洲欧美成人综合| 国产成人精品一区二区三区视频| 伊人久久一区| 久久影视一区| 卡一卡二国产精品| 亚洲影院天堂中文av色| 日韩高清中文字幕一区二区| 国产探花一区在线观看| 亚洲美洲欧洲综合国产一区| 国产精品yjizz视频网| 日本国产一区| 亚洲一级二级| 精品日韩在线| 97精品国产99久久久久久免费| 国产成人久久精品麻豆二区| 久久亚洲二区| 精品亚洲自拍| 国产精品久久久免费| 亚洲综合福利| 欧美特黄一级大片| 国产一区二区三区国产精品 | 久久国产日韩欧美精品| 99久久激情| 精品午夜久久| 在线日韩成人| 欧美在线亚洲综合一区| 国产成人精品一区二区三区视频| 深夜日韩欧美| 蜜乳av另类精品一区二区| 性欧美xxxx免费岛国不卡电影| 国产精品精品| 另类综合日韩欧美亚洲| 日韩一二三区在线观看| 欧美在线网站| 天堂网av成人| 国产传媒av在线| 精品免费视频| 久久av资源| 久久国产精品99国产| 中文字幕在线看片| 久久麻豆视频| 国产精品欧美三级在线观看| 欧美亚洲国产日韩| 欧美自拍一区| 日韩av三区| 日韩精品亚洲aⅴ在线影院| 午夜在线视频观看日韩17c| 红桃视频国产一区| 亚洲欧美日韩综合国产aⅴ| 激情久久久久久| 色婷婷狠狠五月综合天色拍| 91精品一区国产高清在线gif| 日韩在线看片| 天堂中文在线播放| 国内一区二区三区| 国产在线不卡一区二区三区| 久久精品国产在热久久| 国产剧情在线观看一区| 国产精品一区二区免费福利视频| 91麻豆精品激情在线观看最新| 亚洲精品九九| 日本午夜精品一区二区三区电影| 日韩一区中文| 国产日韩欧美三级| 国产精品伦一区二区| 久久尤物视频| 亚洲免费福利| 国产精品91一区二区三区| 伊人久久亚洲影院| 99免费精品| 欧美福利一区| 亚洲综合丁香| 一区二区日韩免费看| 亚洲理论在线| 国产欧美日韩精品一区二区免费 | 日韩午夜视频在线| 日韩精品第二页| 日韩国产欧美三级| 欧美日韩一区二区三区不卡视频 | 国产精品久久久久久妇女| 日本亚洲不卡| 国产日产高清欧美一区二区三区 | 日韩影院精彩在线| 老牛国产精品一区的观看方式| 免费在线观看视频一区| 日韩精品免费一区二区夜夜嗨| 国产精品欧美在线观看| 国产传媒av在线| 五月天综合网站| 亚洲精品激情| 欧美视频一区| 日韩一区二区三区免费| 伊人成人网在线看| 欧美日韩一区二区三区不卡视频| 风间由美中文字幕在线看视频国产欧美 | 日韩动漫一区| 久久97久久97精品免视看秋霞| 私拍精品福利视频在线一区| 视频一区视频二区中文| 国产精品99久久久久久董美香| 日韩专区精品| 日韩在线播放一区二区| 欧美国产极品| 国产精品久久久久av电视剧| 国产亚洲精品自拍| 国产精品s色| 欧美国产美女| 中文字幕成人|