日常学习28.7HashMap存储自定义类型键值

HashMap存储自定义类型键值
Map集合保证key是唯一的:
作为Key的元素,必须重写hashCode方法和equals方法,以保证key唯一

public class Demo01HashMap {
    public static void main(String[] args) {
//        show01();
        show02();
    }
    /*
    HashMap存储自定义类型键值
    key:Person类型
        Person类就必须重写hashCode方法和equals方法,以保证key唯一
    value:String类型
        可以重复
     */

    private static void show02() {
        //创建HashMap集合
        HashMap<Person,String> map=new HashMap<>();
        //往集合中添加元素  用person作为key必须重写hashCode和equals方法,因为系统没有自动帮忙重写,需要自己重写
        map.put(new Person("女王",18),"英国");
        map.put(new Person("秦始皇",18),"秦国");
        map.put(new Person("普京",18),"俄罗斯");
        map.put(new Person("女王",18),"毛里求斯");
        //使用entrySet和增强for循环遍历map集合
        Set<Map.Entry<Person, String>> set = map.entrySet();
        for (Map.Entry<Person, String> entry : set) {
            Person key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"-->"+value);
        }
    }

    /*
        HashMap存储自定义类型键值
        key:String类型
            String类型重写hashCode方法equals方法,可以保证key唯一
        value:Person类型
               value可以重复(同名同年龄的人可以视为同一个)
     */
    private static void show01() {
        //创建HashMap集合
        HashMap<String,Person> map=new HashMap<>();
        //往集合中添加元素
        map.put("北京",new Person("张三",15));
        map.put("上海",new Person("李四",15));
        map.put("广州",new Person("王五",15));
        map.put("北京",new Person("张六",15));
        //使用keySet加增强for循环遍历Map集合
        Set<String> set = map.keySet();
        for (String key : set) {
            Person value = map.get(key);
            System.out.println(key+"-->"+value);
        }
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页