成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:2日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色国产综合视频| 成人激情动漫在线观看| 北条麻妃一区二区三区| 91精品欧美福利在线观看| 激情五月播播久久久精品| 色婷婷激情一区二区三区| 亚洲成人资源在线| 香蕉免费一区二区三区在线观看| 欧美国产日产图区| 欧美一区二区三区在线播放| 久久久噜噜噜久久中文字幕色伊伊| 国产99久久久国产精品潘金| 欧美一区三区四区| 国产一区二区精品久久91| 欧美美女直播网站| 久久精品国产澳门| 欧美日韩免费高清一区色橹橹 | 国产成a人亚洲精| 欧美人妇做爰xxxⅹ性高电影| 国产一区二区精品久久91| 日韩三级电影网址| 成人黄色软件下载| 国产日韩欧美一区二区三区综合| 午夜久久资源| 亚洲欧美一区二区三区久本道91| 国产亚洲精品久久飘花 | 1区2区3区精品视频| 99爱精品视频| 亚洲成人一区二区在线观看| 久久久蜜桃一区二区人| 九色|91porny| 日韩精品一区二| 午夜国产精品视频| 国产精品超碰97尤物18| 亚洲成人中文| 亚洲成人精品影院| 欧美亚洲一区三区| 成人午夜伦理影院| 国产人妖乱国产精品人妖| 在线看片日韩| 五月婷婷久久综合| 在线不卡一区二区| 色综合视频在线观看| 亚洲欧洲综合另类| 欧美中文一区二区三区| 国产·精品毛片| 国产精品电影一区二区三区| 久久国产精品亚洲va麻豆| 激情综合色播激情啊| 日韩欧美国产1| 国产精品v欧美精品v日本精品动漫| 亚洲精品国产a久久久久久| 色呦呦国产精品| 国产一区二区三区美女| 精品日韩一区二区| 在线国产日韩| 美国毛片一区二区| 久久美女艺术照精彩视频福利播放| 一区在线视频观看| 日本vs亚洲vs韩国一区三区二区| 欧美日韩精品专区| 欧美成人一区二免费视频软件| 樱花草国产18久久久久| 欧美吻胸吃奶大尺度电影| 99综合影院在线| 亚洲精品乱码久久久久久久久 | 亚洲免费影院| 国产一区二区福利视频| 亚洲精品一区二区三区精华液 | 日韩欧美一级在线播放| 精品69视频一区二区三区Q| 日本强好片久久久久久aaa| 精品少妇一区二区三区在线播放 | 久久欧美中文字幕| 一区二区三区av| 国产一区二区三区蝌蚪| 国产精品免费观看视频| 久久久久久久波多野高潮日日| 粉嫩aⅴ一区二区三区四区| 亚洲视频免费在线观看| 欧美色图12p| 欧美日韩在线精品| 九九热在线视频观看这里只有精品| 国产欧美精品一区二区色综合| 久久人人97超碰国产公开结果| 91免费观看视频| 麻豆国产精品官网| 中文字幕在线观看一区二区| 91精品国产美女浴室洗澡无遮挡| 最新成人av网站| 成年人国产精品| 日韩国产欧美三级| 国产欧美综合在线观看第十页| 91国内精品野花午夜精品| 欧美凹凸一区二区三区视频| 蜜桃视频在线一区| 中文字幕永久在线不卡| 欧美一区二区三区免费观看视频| 亚洲国产专区校园欧美| 国产成人日日夜夜| 婷婷综合久久一区二区三区| 国产清纯在线一区二区www| 日本韩国欧美三级| 国内精品美女在线观看 | 国产精品区二区三区日本| 99re这里只有精品首页| 奇米影视在线99精品| 中文字幕精品一区二区精品绿巨人 | 伊人色综合久久天天五月婷| 国产乱理伦片在线观看夜一区| 一区二区三区在线视频免费观看| 精品日韩成人av| 在线观看成人免费视频| 99成人在线| 欧美一区在线看| 国产成人自拍高清视频在线免费播放| 亚洲成年人影院| 中文字幕一区二区三区在线不卡| 日韩一区二区三区视频在线| 久久一区国产| 亚洲精品一级| 欧美激情综合| 国产成人亚洲精品青草天美| 日韩精品免费专区| 一区二区三区欧美| 国产午夜精品在线观看| 91精品国产综合久久久久久漫画| 亚洲综合激情| 一区在线免费观看| av电影天堂一区二区在线| 久久99国内精品| 亚洲国产精品尤物yw在线观看| 国产精品视频第一区| 2020国产精品久久精品美国| 欧美日韩一区视频| 久久xxxx精品视频| 亚洲成色www久久网站| 91捆绑美女网站| 丰满少妇在线播放bd日韩电影| 日本亚洲电影天堂| 亚洲午夜在线视频| 国产精品福利在线播放| 久久久久久久久岛国免费| 日韩一区二区在线免费观看| 欧美日韩一区二区三区在线| 久久一区免费| 亚欧成人精品| 国产模特精品视频久久久久| 99国产精品私拍| 国内激情久久| 欧美日本高清| 午夜精品一区二区三区四区| 女同性一区二区三区人了人一| 93久久精品日日躁夜夜躁欧美| av电影天堂一区二区在线观看| 丁香婷婷综合五月| 成人自拍视频在线| 国产成人综合亚洲91猫咪| 国产一区二区不卡| 韩国成人精品a∨在线观看| 精品一区二区三区免费观看| 亚洲永久免费视频| 亚洲二区在线观看| 亚洲成av人在线观看| 亚洲男人天堂av| 亚洲裸体xxx| 伊人开心综合网| 亚洲一区视频在线观看视频| 亚洲在线视频一区| 亚洲成国产人片在线观看| 香蕉影视欧美成人| 日韩成人av影视| 青青青伊人色综合久久| 秋霞成人午夜伦在线观看| 蜜臀久久99精品久久久画质超高清 | 精品区一区二区| 欧美成人国产一区二区| 日韩午夜在线影院| 久久这里只有精品视频网| 国产午夜精品久久久久久免费视| 久久精品视频在线看| 中文字幕+乱码+中文字幕一区| 国产精品女同一区二区三区| 国产精品国产三级国产普通话99| 最新日韩在线视频| 亚洲综合一二区| 日本欧美一区二区| 国内成+人亚洲+欧美+综合在线| 国产福利一区二区三区视频在线| 成人一区二区视频| 欧美久久综合| 国产欧美一区二区三区另类精品| 国产精品亚洲欧美| 欧美在线免费观看亚洲| 91精品国产一区二区三区香蕉| 26uuu精品一区二区在线观看| 国产欧美日韩中文久久| 亚洲精品国产高清久久伦理二区| 日韩经典中文字幕一区| 国内不卡的二区三区中文字幕|