package com.example.democrud.democurd.Prototype.demo01; import java.util.*; public class Demo4 { public static void main(String[] args) { // List的三种遍历方式: listTest(); System.out.println("------------------方法分割-----------------------"); //Map的三种遍历方式: mapTest(); } public static void mapTest() { HashMap<String, String> map = new HashMap<>(); map.put("孙悟空", "老大"); map.put("猪八戒", "老三"); map.put("唐三藏", "老二"); map.put("沙悟净", "老四"); //表示将map对象的所有key值已set集合的形式返回 Set<String> set = map.keySet(); for (String s : set) { //s就是key的值 s1是value String s1 = map.get(s); System.out.println("键:" + s + "- 值:" + s1); } System.out.println("-----------------------------"); /** * entrySet() 将原有Map集合中的键值作为一个整体返回Set集合 再将包含键值对对象的Set集合转化为Iterator接口对象, 然后获取集合中的所有的键值对映射关系, 在从映射关系中取出键和值 * */ Set<Map.Entry<String, String>> set01 = map.entrySet(); for (Map.Entry<String, String> entry : set01) { String key = entry.getKey(); String value = entry.getValue(); System.out.println("键:" + key + "- 值:" + value); } System.out.println("-----------------------------"); /** * map.entrySet().iterator(); * 首先是map.entrySet()是把HashMap类型的数据转换成集合类型; * 然后是获得map的迭代器,用作遍历map中的每一个键值对; * iterator()是去获得这个集合的迭代器,保存在iter里面; */ Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, String> next = iterator.next(); String key = next.getKey(); String value = next.getValue(); System.out.println("键:" + key + "- 值:" + value); } System.out.println("-----------------------------"); System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); for (String v : map.values()) { System.out.println("value= " + v); } } public static void listTest() { List<String> list = new ArrayList<>(); list.add("孙悟空"); list.add("唐三藏"); list.add("猪八戒"); list.add("沙悟净"); String string = list.toString(); System.out.println(string); System.out.println("-----------------------------"); for (String s : list) { System.out.println(s); } System.out.println("-----------------------------"); for (int i = 0; i < list.size(); i++) { String s = list.get(i); System.out.println(s); } System.out.println("-----------------------------"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String next = iterator.next(); System.out.println(next); } } }
运行结果如下:
[孙悟空, 唐三藏, 猪八戒, 沙悟净] ----------------------------- 孙悟空 唐三藏 猪八戒 沙悟净 ----------------------------- 孙悟空 唐三藏 猪八戒 沙悟净 ----------------------------- 孙悟空 唐三藏 猪八戒 沙悟净 ------------------方法分割----------------------- 键:孙悟空- 值:老大 键:沙悟净- 值:老四 键:猪八戒- 值:老三 键:唐三藏- 值:老二 ----------------------------- 键:孙悟空- 值:老大 键:沙悟净- 值:老四 键:猪八戒- 值:老三 键:唐三藏- 值:老二 ----------------------------- 键:孙悟空- 值:老大 键:沙悟净- 值:老四 键:猪八戒- 值:老三 键:唐三藏- 值:老二 ----------------------------- 通过Map.values()遍历所有的value,但不能遍历key value= 老大 value= 老四 value= 老三 value= 老二