Java集合教程 - Java映射操作
映射迭代
要迭代地图的键,值或条目,使用映射的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 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 keys = map.keySet();
// Print all keys using the forEach() method. keys.forEach(System.out::println);
}
}
上面的代码生成以下结果。
映射条目
映射中的每个键值对都称为条目。条目由Map.Entry接口的实例表示。
Map.Entry是Map接口的内部静态接口。
Map.Entry有三个方法调用getKey(),getValue()和setValue()它返回条目的键值,值,并分别在条目中设置新值。
Map的条目集上的典型迭代如下:import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Map 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> entries = map.entrySet();
entries.forEach((Map.Entry entry) -> {
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + ", value=" + value);
});
}
}
上面的代码生成以下结果。
映射条目迭代
forEach(BiConsumer action)从Map界面遍历映射中的所有条目。
该方法需要一个BiConsumer实例第一个参数是键,第二个参数是值用于映射中的当前条目。import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map 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);
});
}
}
上面的代码生成以下结果。
映射视图
以下代码演示了如何获取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 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 map) {
System.out.println("Key Set:");
Set keys = map.keySet();
keys.forEach(System.out::println);
System.out.println();
}
public static void listValues(Map map) {
System.out.println("Values Collection:");
Collection values = map.values();
values.forEach(System.out::println);
System.out.println();
}
public static void listEntries(Map map) {
System.out.println("Entry Set:");
// Get the entry Set Set> entries = map.entrySet();
entries.forEach((Map.Entry entry) -> {
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + ", value=" + value);
});
}
}
上面的代码生成以下结果。