当前位置: 首页 > news >正文

map 中key 是否可以放置的自定义的对象?

在 Java 中,可以将自定义对象作为 Map 的 Key,但必须满足以下条件:


1. 必须正确重写 hashCode()equals() 方法

  • 原因Map(如 HashMap)依赖这两个方法确定键的唯一性和存储位置。
  • 未正确重写的风险
    • 无法正确查找值:即使两个对象逻辑上相等,若 hashCode 不同,会被视为不同的 Key。
    • 重复 Key:若 equals 未正确实现,逻辑相等的对象可能被同时存入 Map,破坏 Key 的唯一性。
示例代码
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic int hashCode() {return Objects.hash(name, age); // 基于所有关键字段生成 hash}@Overridepublic boolean equals(Object obj) {

相关文章:

  • 【嵌入式系统设计师(软考中级)】第一章:计算机系统基础知识(上)
  • linux命令八
  • SparkSQL Join的源码分析
  • python自动化浏览器标签页的切换
  • 大模型——Crawl4AI 中的数据提取策略
  • 【FPGA基础学习】DDS信号发生器设计
  • AI图片生成器
  • AIP-235 批量方法:Delete
  • idea如何使用git
  • Maybe:打造个人财务管理的开源操作系统
  • SpringBoot-基础特性
  • 前端vue3 实现倒计时功能 组件
  • 重返JAVA之路——图书管理系统
  • B2B2C多用户商城平台 的两种创新玩法
  • 华熙生物亮相消博会,这次又带来了什么样的变化?
  • springboot项目添加定时任务,用sftp推送zip包到目标服务器
  • 车载信息安全 --- 密钥管理
  • Anaconda笔记
  • C语言-习题整理(1)
  • 第 2 篇:快速上手 Framer Motion(实操入门)
  • 铁路上海站迎五一返程客流最高峰,今日预计到达75.9万人次
  • 工程机械行业景气度持续回升,三大龙头一季度营收、净利双增
  • 中青报:“爸妈替我在线相亲”,助力还是越界?
  • 取消了“仅退款”,商家就可以高枕无忧了吗?
  • 阿根廷发生5.8级地震
  • 申活观察|咖香涌动北外滩,带来哪些消费新想象?