输出结果:
利用 keySet 进行遍历 zhang2***2 zhang3***3 zhang1***1 zhang4***4 zhang5***5此方法只能 遍历 value,获取不到 key。
import java.util.HashMap; import java.util.Map; /** * @author imenger * @date 2020/6/30 3:34 下午 */ public class TestMap { public static void main(String[] args) { Map<String, Integer> userMap = inputMap(); showMap2(userMap); } /** * 利用 Map.values()遍历HashMap * * @param userMap * @return void * @author imenger * @date 2020/7/1 10:29 上午 */ public static void showMap2(Map<String, Integer> userMap) { System.out.println("利用 values 进行遍历"); // 只能获取 value值,如果需要获取 k,v 就用第一种。 for (Integer v : userMap.values()) { System.out.println(v); } } public static Map<String, Integer> inputMap() { Map<String, Integer> userMap = new HashMap<String, Integer>(5); userMap.put("zhang1", new Integer(1)); userMap.put("zhang2", new Integer(2)); userMap.put("zhang3", new Integer(3)); userMap.put("zhang4", new Integer(4)); userMap.put("zhang5", new Integer(5)); return userMap; } }输出结果:
利用 values 进行遍历 2 3 1 4 5如果同时获取 k 和 v 优先采用这种方式
import java.util.HashMap; import java.util.Map; /** * @author imenger * @date 2020/6/30 3:34 下午 */ public class TestMap { public static void main(String[] args) { Map<String, Integer> userMap = inputMap(); showMap3(userMap); } /** * 利用 entrySet 遍历HashMap * * @param userMap * @return void * @author imenger * @date 2020/7/1 10:29 上午 */ public static void showMap3(Map<String, Integer> userMap) { System.out.println("利用 entrySet 进行遍历"); // 获取键值映射, // 通过这种方法可以直接把该节点的 k和 v 一起获取出来,与 map1 区别为不需要知道 k 再次获取 for (Map.Entry<String, Integer> entry : userMap.entrySet()) { System.out.println(entry.getKey() + "===" + entry.getValue()); } } public static Map<String, Integer> inputMap() { Map<String, Integer> userMap = new HashMap<String, Integer>(5); userMap.put("zhang1", new Integer(1)); userMap.put("zhang2", new Integer(2)); userMap.put("zhang3", new Integer(3)); userMap.put("zhang4", new Integer(4)); userMap.put("zhang5", new Integer(5)); return userMap; } }输出结果:
利用 entrySet 进行遍历 zhang2===2 zhang3===3 zhang1===1 zhang4===4 zhang5===5