這篇文章主要講解了“Java中HashMap迭代刪除使用方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java中HashMap迭代刪除使用方法是什么”吧!
創新互聯主營鳳翔網站建設的網絡公司,主營網站建設方案,手機APP定制開發,鳳翔h5微信小程序搭建,鳳翔網站營銷推廣歡迎鳳翔等地區企業咨詢I. Map 迭代刪除
迭代刪除,在不考慮并發安全的前提下,我們看下可以怎么支持
1. 非常不優雅版本
我們知道map并不是繼承自Collection接口的,HashMap 也沒有提供迭代支持,既然沒法直接迭代,那我就老老實的low b版好了
Map<String, Integer> map = new HashMap<>();map.put("a", 1);map.put("b", 2);map.put("c", 3);map.put("d", 4);List<String> removeKey = new ArrayList<>();for (Map.Entry<String, Integer> e: map.entrySet()) { if (e.getValue() % 2== 0) { removeKey.add(e.getKey()); }}removeKey.forEach(map::remove);
上面的實現怎么樣?并沒有什么毛病
(為啥不直接在遍歷中刪除?)
2. 正確姿勢版
雖然Map沒有迭代,但是它的entrySet有啊,所以我們可以通過它來實現遍歷刪除
Map<String, Integer> map = new HashMap<>();map.put("a", 1);map.put("b", 2);map.put("c", 3);map.put("d", 4);Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();Map.Entry<String, Integer> entry;while (iterator.hasNext()) { entry = iterator.next(); if (entry.getValue() % 2 == 0) { iterator.remove(); }}System.out.println(map);
上面這個可能是我們經常使用的操作姿勢了,利用迭代器來操作元素
3. 簡潔版
到jdk8之后,針對容器提供了很多簡潔的操作方式,迭代刪除這方面可以說更加簡單了
Map<String, Integer> map = new HashMap<>();map.put("a", 1);map.put("b", 2);map.put("c", 3);map.put("d", 4);map.entrySet().removeIf(entry -> entry.getValue() % 2 == 0);
4. 其他
盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激
感謝各位的閱讀,以上就是“Java中HashMap迭代刪除使用方法是什么”的內容了,經過本文的學習后,相信大家對Java中HashMap迭代刪除使用方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯網站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!
網站名稱:Java中HashMap迭代刪除使用方法是什么-創新互聯
當前URL:http://vcdvsql.cn/article24/pphje.html
成都網站建設公司_創新互聯,為您提供面包屑導航、網站排名、動態網站、網站維護、域名注冊、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯