欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

Java-集合框架-map3(遍历自定义对象)

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());
        }
    }
}

 

posted @ 2020-08-04 16:56  萧静默  阅读(318)  评论(0编辑  收藏  举报