日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Stream很好,Map很酷,但答應我別用toMap()

來源: 責編: 時間:2024-07-10 17:58:37 787觀看
導讀在 JDK 8 中 Java 引入了讓人欲罷不能的 stream 流處理,可以說已經成為了我日常開發中不可或缺的一部分。當完成一次流處理之后需要返回一個集成對象時,已經肌肉記憶的敲下 collect(Collectors.toList()) 或者 collect(

在 JDK 8 中 Java 引入了讓人欲罷不能的 stream 流處理,可以說已經成為了我日常開發中不可或缺的一部分。Xyx28資訊網——每日最新資訊28at.com

當完成一次流處理之后需要返回一個集成對象時,已經肌肉記憶的敲下 collect(Collectors.toList()) 或者 collect(Collectors.toSet())。你可能會想,toList 和 toSet 都這么便捷順手了,當又怎么能少得了 toMap() 呢。Xyx28資訊網——每日最新資訊28at.com

答應我,一定打消你的這個想法,否則這將成為你噩夢的開端。Xyx28資訊網——每日最新資訊28at.com

Xyx28資訊網——每日最新資訊28at.com

什么?你不信,沒有什么比代碼讓人更痛徹心扉,讓我們直接上代碼。Xyx28資訊網——每日最新資訊28at.com

讓我們先準備一個用戶實體類。Xyx28資訊網——每日最新資訊28at.com

@Data@AllArgsConstructor  public class User {        private int id;          private String name;  }

假設有這么一個場景,你從數據庫讀取 User 集合,你需要將其轉為 Map 結構數據,key 和 value 分別為 user 的 id 和 name。Xyx28資訊網——每日最新資訊28at.com

很快,你啪的一下就寫出了下面的代碼:Xyx28資訊網——每日最新資訊28at.com

public class UserTest {    @Test    public void demo() {          List<User> userList = new ArrayList<>();        // 模擬數據        userList.add(new User(1, "Alex"));          userList.add(new User(1, "Beth"));        Map<Integer, String> map = userList.stream()                  .collect(Collectors.toMap(User::getId, User::getName));          System.out.println(map);      }}

運行程序,你已經想好了開始怎么摸魚,結果啪的一下 IllegalStateException 報錯就拍你臉上,你定睛一看怎么提示 Key 值重復。Xyx28資訊網——每日最新資訊28at.com

Xyx28資訊網——每日最新資訊28at.com

作為優秀的八股文選手,你清楚的記得 HashMap 對象 Key 重復是進行替換。你不信邪,斷點一打,堆棧一看,碩大的 uniqKeys 擺在了面前,憑借四級 424 分的優秀戰績你頓時菊花一緊,點開一看,誰家好人 map key 還要去重判斷啊。Xyx28資訊網——每日最新資訊28at.com

圖片圖片Xyx28資訊網——每日最新資訊28at.com

好好好,這么玩是吧,你轉身打開瀏覽器一搜,原來需要自己手動處理重復場景,啪的一下你又重新改了一下代碼:Xyx28資訊網——每日最新資訊28at.com

public class UserTest {    @Test    public void demo() {          List<User> userList = new ArrayList<>();        // 模擬數據        userList.add(new User(1, "Alex"));          userList.add(new User(2, null));                Map<Integer, String> map = userList.stream()                  .collect(Collectors.toMap(User::getId, User::getName, (oldData, newData) -> newData));          System.out.println(map);      }}

再次執行程序,你似乎已經看到知乎的摸魚貼在向你招手了,結果啪的一下 NPE 又拍在你那笑容漸漸消失的臉上。Xyx28資訊網——每日最新資訊28at.com

Xyx28資訊網——每日最新資訊28at.com

靜下心來,本著什么大風大浪我沒見過的心態,斷點堆棧一氣呵成,而下一秒你又望著代碼陷入了沉思,我是誰?我在干什么?Xyx28資訊網——每日最新資訊28at.com

圖片圖片Xyx28資訊網——每日最新資訊28at.com

圖片圖片Xyx28資訊網——每日最新資訊28at.com

鼓起勇氣,你還不信今天就過不去這個坎了,大手一揮,又一段優雅的代碼孕育而生。Xyx28資訊網——每日最新資訊28at.com

public class UserTest {    @Test    public void demo() {          List<User> userList = new ArrayList<>();        // 模擬數據        userList.add(new User(1, "Alex"));          userList.add(new User(1, "Beth"));        userList.add(new User(2, null));                Map<Integer, String> map = userList.stream()                  .collect(Collectors.toMap(                      User::getId,                      it -> Optional.ofNullable(it.getName()).orElse(""),                      (oldData, newData) -> newData)                  );        System.out.println(map);      }}

優雅,真是太優雅了,又是 Stream 又是 Optional,可謂是狠狠拿捏技術博文的 G 點了。Xyx28資訊網——每日最新資訊28at.com

這時候你回頭一看,我需要是什么來著?這 TM 不是一個循環就萬事大吉了嗎,不信邪的你回歸初心,回歸了 for 循環的懷抱,又寫了一版。Xyx28資訊網——每日最新資訊28at.com

public class UserTest {    @Test    public void demo() {          List<User> userList = new ArrayList<>();        // 模擬數據        userList.add(new User(1, "Alex"));          userList.add(new User(1, "Beth"));        userList.add(new User(2, null));          Map<Integer, String> map = new HashMap<>();          userList.forEach(it -> {              map.put(it.getId(), it.getName());          });          System.out.println(map);    }}

看著運行完美無缺的代碼,你一時陷入了沉思,數分鐘過去了,你刪除了 for 循環,換上 Stream 與 Optional 不羈的外衣,安心的提交了代碼,這口細糠一定也要讓好同事去嘗一嘗。Xyx28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-100191-0.htmlStream很好,Map很酷,但答應我別用toMap()

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 最近很火的Vue Vine是如何實現一個文件中寫多個組件

下一篇: Rust模式:使用Box::leak創建一個&amp;'static引用

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美日韩中文字幕精品| 蜜桃av一区二区| 中文亚洲欧美| 亚洲一区二区三区高清| 亚洲免费一区二区| 久久精品国产96久久久香蕉| 久久久久成人精品免费播放动漫| 亚洲色图在线视频| 亚洲欧美国产三级| 久久久91精品国产一区二区三区| 鲁大师影院一区二区三区| 欧美日韩高清在线| 国产欧美二区| 亚洲国产成人高清精品| 一区二区三区视频免费在线观看| 欧美一区二区三区免费视频| 欧美成人国产| 国产精品美女在线| 在线精品福利| 亚洲午夜激情免费视频| 久久久久国产精品一区三寸| 欧美欧美天天天天操| 国产日韩欧美精品| 亚洲美女在线国产| 久久精品国产91精品亚洲| 欧美日韩99| 娇妻被交换粗又大又硬视频欧美| 一区二区精品在线| 久久这里只有精品视频首页| 欧美日韩亚洲高清| 激情亚洲成人| 亚洲一区影院| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品99一区二区| 尤物yw午夜国产精品视频| 亚洲一二三区在线| 欧美h视频在线| 国产色综合网| 中文av一区二区| 蜜桃av噜噜一区| 国产欧美精品久久| 夜夜嗨av一区二区三区网站四季av | 亚洲永久免费av| 蜜臀久久99精品久久久画质超高清| 国产精品国产成人国产三级| 亚洲三级电影全部在线观看高清| 久久精品亚洲一区二区三区浴池| 国产精品家教| 一本色道久久综合亚洲91| 免费成人性网站| 国产亚洲欧美日韩美女| 亚洲免费视频中文字幕| 欧美日韩国产精品自在自线| 亚洲第一精品福利| 久久久久久久久久久久久9999| 国产精品久久亚洲7777| 99热精品在线| 欧美电影在线观看完整版| 含羞草久久爱69一区| 亚洲欧美另类在线| 欧美日韩一区免费| 亚洲人成网站777色婷婷| 久久久精品久久久久| 国产免费亚洲高清| 亚洲永久精品大片| 欧美三日本三级少妇三2023 | 亚洲一二三区精品| 欧美视频不卡中文| 亚洲精品在线电影| 免费亚洲一区| 亚洲福利专区| 免费国产自线拍一欧美视频| 精品av久久久久电影| 欧美一区二区视频观看视频| 国产精品久久久久久久免费软件 | 亚洲一区二区精品| 欧美视频在线观看免费网址| 99国产麻豆精品| 欧美精品日韩一区| 亚洲免费高清| 欧美日韩国产在线看| 亚洲裸体视频| 欧美日韩福利视频| 99国内精品久久| 欧美色123| 亚洲欧美www| 国产麻豆日韩欧美久久| 午夜影视日本亚洲欧洲精品| 国产精品私拍pans大尺度在线| 亚洲一区二区三区色| 国产精品久久久一区麻豆最新章节| av成人免费观看| 欧美性大战久久久久久久蜜臀| 亚洲一区二区三区免费在线观看| 国产精品视频不卡| 欧美在线日韩精品| 国产一区二区日韩精品| 久久综合网络一区二区| 亚洲片在线资源| 欧美另类一区二区三区| 在线视频你懂得一区| 国产精品久久久久免费a∨大胸| 亚洲综合色网站| 国产一区二区日韩| 久久青青草原一区二区| 亚洲狠狠婷婷| 欧美视频福利| 久久av资源网站| 亚洲电影自拍| 欧美日韩一区不卡| 性欧美videos另类喷潮| 国语精品中文字幕| 欧美福利电影网| 亚洲手机成人高清视频| 国产亚洲欧美日韩一区二区| 久久午夜精品| 日韩亚洲欧美高清| 国产美女精品一区二区三区| 久久人人九九| 一本大道久久a久久精二百| 国产欧美欧美| 免费不卡在线观看| 一区二区日韩精品| 国模一区二区三区| 欧美精品少妇一区二区三区| 香蕉成人伊视频在线观看| 在线成人激情视频| 欧美日韩一区三区| 久久国产欧美精品| 99re66热这里只有精品3直播| 国产欧美日韩在线| 欧美jizzhd精品欧美巨大免费| 亚洲天堂成人在线观看| 国外成人网址| 欧美性一区二区| 久久只有精品| 亚洲一区二区在线观看视频| 一色屋精品视频在线看| 欧美丝袜一区二区| 久久久久久久久久久成人| 一区二区三区精品视频| 国内精品免费在线观看| 欧美日韩激情网| 久久久久看片| 亚洲中字黄色| 亚洲精品视频一区二区三区| 国产亚洲精品aa| 欧美日韩亚洲免费| 另类尿喷潮videofree| 亚洲欧美在线看| 亚洲老司机av| 尹人成人综合网| 国产精品欧美日韩一区二区| 欧美大片18| 久久精品2019中文字幕| 亚洲一区二区伦理| 亚洲精品国产精品久久清纯直播| 国产欧美一区二区在线观看| 欧美日本韩国一区二区三区| 久久只精品国产| 欧美一区二区高清在线观看| 正在播放亚洲| 亚洲激情在线激情| 国内外成人在线视频| 国产精品一区二区久久久| 欧美激情一区二区三区高清视频| 久久久久久午夜| 午夜宅男欧美| 亚洲午夜久久久| 亚洲免费观看| 亚洲国产精品va在线观看黑人| 国产区欧美区日韩区| 国产精品久久久久aaaa九色| 欧美日韩不卡一区| 欧美 日韩 国产在线| 久久精品国内一区二区三区| 亚洲一区二区成人| 一本大道久久精品懂色aⅴ| 亚洲国产三级在线| 好吊色欧美一区二区三区四区 | 亚洲精华国产欧美| 国产自产精品| 国产日韩精品一区二区三区在线| 欧美日韩在线播放一区二区| 欧美精品不卡| 欧美国产日韩xxxxx| 久久只有精品| 久热精品视频在线观看| 久久久久久97三级| 久久国产主播| 久久精品亚洲乱码伦伦中文| 欧美在线999| 欧美伊人久久久久久久久影院 | 韩国福利一区| 国内外成人在线| 国内精品视频666| 国产亚洲亚洲| 国产在线精品一区二区夜色| 国产欧美日韩亚洲一区二区三区 | 一区二区三区日韩精品视频| 99v久久综合狠狠综合久久| 亚洲毛片播放| 一区二区三区国产盗摄| 中文精品99久久国产香蕉|