java类集---Map使用注意事项

一,本章目标

掌握Map接口的输出操作

掌握Map接口中key类的定义标准


二,具体内容


但是,Map接口一般作为查找来使用,输出操作很少见。

使用Iterator输出:


使用foreach输出:


这两种输出形式实际上还是以Collection的形式输出,只是以Map.entry作为内容的操作类型。

在Map中,可以使用任意的类型作为key和walue,那么非系统的类也可以。



现在用String为key是可以正确地输出person的内容。现在把key和value的类型交换一下


此时,只是将自定义的类作为key,取值的时候取不了,返回结果是null,为什么?

匹配时的一个问题:只有对象完全一样才能查询出来。


这样不是解决问题的方法,因为不可能将Person的per对象到处带着走,应该像String一样,可以使用匿名对象的形式找到内容。

那么,就要按照与Set接口中判断重复元素的方式一样,进行方法的覆写。



作为Key,或者更准确来说作为对象的时候,实际上是依靠hashCode和equals方法来判断2个匿名对象是否相等,这一点由系统内容完成。




三,总结

Map可以使用迭代输出

map->entrySet->Set->Iterator->Map.Entry->Key和value

如果使用非系统类作为key,则一定要覆写equal和hashCode方法,负责无效。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值