Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HashMap中插入对象_Java_Collections_Hashmap_Equals_Hashcode - Fatal编程技术网

Java 在HashMap中插入对象

Java 在HashMap中插入对象,java,collections,hashmap,equals,hashcode,Java,Collections,Hashmap,Equals,Hashcode,在HashMap中,当我们输入一个对象时,它会计算键的hashCode,然后转到它指向的bucket。如果bucket已经包含具有相同键的另一个对象,但值不相同。它应该重载equal()方法吗?如何重载?请帮助这是一个值对问题 只要将键/值对放到Hashmap,如果键相同,则旧条目将被新条目覆盖 这些值永远不会相互比较,如果将所需内容放入Hashmap,Hashmap不会在覆盖条目时发出警告 公共V put(K键, (V值) 将指定的值与此映射中的指定键相关联。如果 映射之前包含键的映射,旧值被

在HashMap中,当我们输入一个对象时,它会计算键的hashCode,然后转到它指向的bucket。如果bucket已经包含具有相同键的另一个对象,但值不相同。它应该重载equal()方法吗?如何重载?请帮助

这是一个值对问题

只要将键/值对放到
Hashmap
,如果键相同,则旧条目将被新条目覆盖

这些值永远不会相互比较,如果将所需内容放入
Hashmap
Hashmap
不会在覆盖条目时发出警告

公共V put(K键, (V值)

将指定的值与此映射中的指定键相关联。如果 映射之前包含键的映射,旧值被替换


你的问题是什么?重写这些库,再做一个?您还可以读取源代码…如果映射alreay包含该键的值,则新值将替换与该键关联的旧值。这是有文档记录的:您能解释一下如何在HashMap中重写hashCode()和equals()?您不能在HashMap中重写这些方法。如果希望类中的这些方法用作HashMap的键,并且两个不同的实例可以相等,则可以在类中重写这些方法。因此,如果两个不同的键提供相同的hashCode,那么会发生什么?我被赋予了为employee类(ename、age、dept)创建对象集合的任务我必须根据员工的姓名排列员工对象,如果他们的姓名相同,则按年龄排序,年龄相同,然后按部门排序。那么我该如何处理?使用唯一标识符作为键,该名称在您的情况下不是有效的标识符。@user5533204看起来您被要求对员工列表进行排序,不要使用HashMap。谷歌搜索“Java中对象的排序列表”。