要迭代地圖的鍵,值或條目,使用映射的 keySet()
, values()
和 entrySet
它分別返回一組鍵,值集合和一組條目。
以下代碼段顯示了如何打印映射的所有鍵:
import java.util.HashMap; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("CSS", "style"); map.put("HTML", "mark up"); map.put("Oracle", "database"); map.put("XML", "data"); // Get the set of keys Set<String> keys = map.keySet(); // Print all keys using the forEach() method. keys.forEach(System.out::println); } }
上面的代碼生成以下結(jié)果。
映射中的每個鍵值對都稱為條目。條目由 Map.Entry<K,V>
接口的實例表示。
Map.Entry
是 Map
接口的內(nèi)部靜態(tài)接口。
Map.Entry
有三個方法調(diào)用 getKey()
, getValue()
和 setValue()
它返回條目的鍵值,值,并分別在條目中設(shè)置新值。
Map的條目集上的典型迭代如下:
import java.util.HashMap; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("CSS", "style"); map.put("HTML", "mark up"); map.put("Oracle", "database"); map.put("XML", "data"); // Get the entry Set Set<Map.Entry<String, String>> entries = map.entrySet(); entries.forEach((Map.Entry<String, String> entry) -> { String key = entry.getKey(); String value = entry.getValue(); System.out.println("key=" + key + ", value=" + value); }); } }
上面的代碼生成以下結(jié)果。
forEach(BiConsumer<?super K,?super V> action)
從 Map
界面遍歷映射中的所有條目。
該方法需要一個 BiConsumer
實例第一個參數(shù)是鍵,第二個參數(shù)是值用于映射中的當(dāng)前條目。
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("CSS", "style"); map.put("HTML", "mark up"); map.put("Oracle", "database"); map.put("XML", "data"); map.forEach((String key, String value) -> { System.out.println("key=" + key + ", value=" + value); }); } }
上面的代碼生成以下結(jié)果。
以下代碼演示了如何獲取Map的三個不同視圖迭代這些視圖中的元素。
import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("CSS", "style"); map.put("HTML", "mark up"); map.put("Oracle", "database"); map.put("XML", "data"); System.out.println("Map: " + map.toString()); listValues(map); listEntries(map); } public static void listKeys(Map<String, String> map) { System.out.println("Key Set:"); Set<String> keys = map.keySet(); keys.forEach(System.out::println); System.out.println(); } public static void listValues(Map<String, String> map) { System.out.println("Values Collection:"); Collection<String> values = map.values(); values.forEach(System.out::println); System.out.println(); } public static void listEntries(Map<String, String> map) { System.out.println("Entry Set:"); // Get the entry Set Set<Map.Entry<String, String>> entries = map.entrySet(); entries.forEach((Map.Entry<String, String> entry) -> { String key = entry.getKey(); String value = entry.getValue(); System.out.println("key=" + key + ", value=" + value); }); } }
上面的代碼生成以下結(jié)果。
更多建議: