1,map集合的三种遍历方式
1)用键获取值遍历
private static void method1(HashMap<Integer, String> map) { Set<Integer> keySet=map.keySet(); for (Integer integer : keySet) { String value=map.get(integer); System.out.println(integer+"---"+value); } }
2)用键值对获取键与值遍历
private static void method2(HashMap<Integer, String> map) { Set<Map.Entry<Integer,String>>entries=map.entrySet(); for (Map.Entry<Integer, String> entry : entries) { System.out.println(entry.getKey()+"---"+ entry.getValue()); } }
3)用map自带的foreach循环进行遍历
private static void method3(HashMap<Integer, String> map) { map.forEach((key,value)-> System.out.println(key+"---"+value)); }
2,若map遍历时,键的值为一个对象,则遍历的代码为
1)foreach遍历
private static void method2(Map<Person, String> map) { map.forEach((key, value) -> System.out.println(key.getAge() + "岁的" + key.getName() + "--" + value)); }
2)键值对遍历
private static void method1(Map<Person, String> map) { Set<Map.Entry<Person, String>> entries = map.entrySet(); for (Map.Entry<Person, String> entry : entries) { System.out.println(entry.getKey().getAge() + "岁的" + entry.getKey().getName() + "--" + entry.getValue()); } }
3)总结,若是用Hashmap需要改写Hashcode和equals方法,不然无法去重,若是用Treemap需要重写比较器