日常学习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);
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值