Java中遍曆Map的常用方法

來源:互聯網
上載者:User

標籤:java   pointer   method   exce   str   最可   keyset   for   get   

以下方法適用於任何map實現(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等):

 方式一(推薦):

 1 // 推薦 2 // 在for-each迴圈中使用entries來遍曆 3 // 注意:for-each迴圈在Java 5中被引入所以該方法只能應用於java 5或更高的版本中。 4 // 如果你遍曆的是一個空的map對象,for-each迴圈將拋出NullPointerException,因此在遍曆前你總是應該檢查Null 參考。 5 private static void testMethod1(Map<Integer, String> map) { 6  7    // 這是最常見的並且在大多數情況下也是最可取的遍曆方式。在索引值都需要時使用。 8    for (Map.Entry<Integer, String> entry : map.entrySet()) { 9         System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());10    }11 12 }

方式二:

 1     // 方法二 在for-each迴圈中遍曆keys或values。 2     // 如果只需要map中的鍵或者值,你可以通過keySet或values來實現遍曆,而不是用entrySet。 3     // 該方法比entrySet遍曆在效能上稍好(快了10%),而且代碼更加乾淨。 4     private static void testMethod2(Map<Integer, String> map) { 5  6         // 遍曆map中的鍵 7         for (Integer key : map.keySet()) { 8  9             System.out.println("Key = " + key);10 11         }12 13         // 遍曆map中的值14         for (String value : map.values()) {15 16             System.out.println("Value = " + value);17 18         }19 20     }

方式三:

 1     // 方法三使用Iterator遍曆 2     // 本方式有兩個好處,一是在老版本java中這是惟一遍曆map的方式。另一個好處是,你可以在遍曆時調用iterator.remove()來刪除entries,另兩個方法則不能。 3     private static void testMethod3(Map<Integer, String> map) { 4  5         Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator(); 6  7         while (entries.hasNext()) { 8  9             Map.Entry<Integer, String> entry = entries.next();10 11             System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());12 13         }14     }

方式四:

 1     // 方法四、通過鍵找值遍曆(效率低) 2     // 相當慢且無效率 3     private static void testMethod4(Map<Integer, String> map) { 4  5         for (Integer key : map.keySet()) { 6  7             String value = map.get(key); 8  9             System.out.println("Key = " + key + ", Value = " + value);10 11         }12     }

 

Java中遍曆Map的常用方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.