题目1:遍历map的几种方法?
第一种,通过key取值。(Map.keyset()遍历key)。
package main.com.edu.shengda.map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class TestMap1 {
public static void main(String[] args) {
HashMap<String,String> map = new HashMap<>();
map.put("许仙", "白娘子");
map.put("董永", "七仙女");
map.put("牛郎", "织女");
map.put("许仙", "小青");
System.out.println("所有的key:");
Set<String> keySet = map.keySet();
for (String key : keySet) {
System.out.println(key);
}
}
}
第一种 通过map的value方法。(Map.values()遍历所有的value)。
System.out.println("所有的value:");
Collection<String> values = map.values();
for (String value : values) {
System.out.println(value);
}
第二中,通过entryset()。(通过Map.enteySet()遍历key和value)。
直接打印map集合
System.out.println("所有的映射关系");
Set<Map.Entry<String,String>> entrySet = map.entrySet();
for (Map.Entry<String,String> entry : entrySet) {
System.out.println(entry);
}
获取key和value再打印
System.out.println("所有的映射关系");
Set<Map.Entry<String,String>> entrySet = map.entrySet();
for (Map.Entry<String,String> entry : entrySet) {
// System.out.println(entry);
System.out.println(entry.getKey()+"->"+entry.getValue());
}
第三种,通过迭代器取值。(Map.enteySet().iterator遍历key和value)。
直接打印map集合
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
System.out.println(next);
}
分别获取key和value来打印map
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();//返回所有的entry实体
while (iterator.hasNext()) {
Map.Entry<String, String> next1 = iterator.next();
String key = next1.getKey();
String value = next1.getValue();
System.out.println(key+" "+value);
}
//通过键来遍历
Iterator iterator1 = map.keySet().iterator();
while (iterator1.hasNext()) {
System.out.println(iterator1.next());
}
//通过值来遍历
Iterator iterator2 = map.values().iterator();
while (iterator2.hasNext()) {
System.out.println(iterator2.next());
}