一,本章目标

掌握Map接口的输出操作

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


二,具体内容

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

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

使用Iterator输出:

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

使用foreach输出:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




三,总结

Map可以使用迭代输出

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

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




相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-12
  • 2021-06-22
  • 2021-07-06
  • 2022-12-23
  • 2018-01-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-02
  • 2021-06-28
  • 2022-12-23
相关资源
相似解决方案