Java在Hashmap中找不到特定的键
我想知道我的Hashmap中是否已经有一个键,但它不起作用 我的main方法代码 当我运行代码时,它返回Fail。如何解决这个问题,我将使用泛型和hashmap作为我的图形数据结构。您的映射键类型是FamilyMember,因此它不会找到字符串“ac”的搜索 如果要将键设置为FamilyMember对象,则需要重写FamilyMember类中的hashCode和equals。在HashMap中搜索项目时,需要提供FamilyMember对象的实例,该对象具有相同的hashCode,并为重写的equals方法返回true 在你的情况下,它可以简单到Java在Hashmap中找不到特定的键,java,Java,我想知道我的Hashmap中是否已经有一个键,但它不起作用 我的main方法代码 当我运行代码时,它返回Fail。如何解决这个问题,我将使用泛型和hashmap作为我的图形数据结构。您的映射键类型是FamilyMember,因此它不会找到字符串“ac”的搜索 如果要将键设置为FamilyMember对象,则需要重写FamilyMember类中的hashCode和equals。在HashMap中搜索项目时,需要提供FamilyMember对象的实例,该对象具有相同的hashCode,并为重写的eq
@Override
public int hashCode() {
return firstName.hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
if (this.getClass() != o.getClass()) return false;
FamilyMember fm = (FamilyMember) o;
return firstName == fm.firstName\;
}
如果您希望能够通过字符串查找LinkedList,则需要将HashMap设置为HashMap键是FamilyMeber对象,而不是字符串Ac。因此,FamilyMeber对象需要实现equals。。。方法。hashmap的键是FamilyMember类型,但在containsKey中传递的是String对象。
package Graph;
public class FamilyMember {
public String firstName;
public FamilyMember(String fname){
this.firstName = fname;
}
@Override
public String toString() {
return firstName;
}
}
@Override
public int hashCode() {
return firstName.hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
if (this.getClass() != o.getClass()) return false;
FamilyMember fm = (FamilyMember) o;
return firstName == fm.firstName\;
}