package cn.burce.HashMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//Map集合遍历取出 entrySet方法
//实现步骤:将map中的方法 entrySet取出映射关系,存到Set集合里Set<K,V>
//迭代Set
//根据getKey和getValue取出键值
public class MapDemo2 {
public static void main(String[] args) {
fun();
System.out.println("--------------");
fun1();
}
public static void fun() {
HashMap<String, Integer> map = new HashMap<>();
map.put("测试1", 1);
map.put("测试2", 2);
map.put("测试3", 3);
map.put("测试4", 4);
// 将map中的方法 entrySet取出映射关系,存到Set集合里Set<K,V>
Set<Map.Entry<String, Integer>> set = map.entrySet();
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while (it.hasNext())
{
// 获取出set集合的元素,这里仍旧是map结构
Map.Entry<String, Integer> map1 = it.next();
// 根据getKey和getValue取出键值
String s = map1.getKey();
Integer i = map1.getValue();
System.out.println(s + "...." + i);
}
System.out.println("----------------------------");
// 增强for
for (Map.Entry<String, Integer> entry : map.entrySet())
{
System.out.println(entry.getKey() + "...." + entry.getValue());
}
}
public static void fun1() {
HashMap<Person, String> map = new HashMap<>();
map.put(new Person("测试1", 18), "1号");
map.put(new Person("测试2", 28), "2号");
map.put(new Person("测试2", 28), "2号");// 需要重写Person里的hashcode方法才行
map.put(new Person("测试3", 38), "3号");
map.put(new Person("测试4", 48), "4号");
// keySet方式
for (Person key : map.keySet())
{
System.out.println(key.getName() + "..." + key.getAge() + "..." + map.get(key));
}
// entry 方式(其中调用了Person的toString重写方法
for (Map.Entry<Person, String> entry : map.entrySet())
{
System.out.println(entry.getKey() + "...." + entry.getValue());
}
}
}
