在Java中。我想存储用户定义的对象和与之相关的整数。我应该使用哪种数据类型? 我已经尝试过HashMap,但显然它不能存储没有equals()方法的对象
答案 0 :(得分:2)
我尝试过HashMap,但显然它不能存储对象 equals()方法
更准确地说,如果不满足以下两个条件之一,则无法将对象用作地图的关键字: -
equals
和hashcode
或因此,您可以轻松地将对象用作键,而不是根据第二个条件使用equals方法。
但是,如果您希望根据新创建的对象找到密钥,最好遵循第一个条件。因为equals
方法的默认实现比较对象的引用值而不是内容本身。
答案 1 :(得分:0)
你应该坚持使用哈希映射。它适用于所有情况。
这是用户
定义的一些类 public class UserDefinedObject(){
}
以下是此类与HashMap的使用
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<UserDefinedObject, Integer> stuff = new HashMap<UserDefinedObject, Integer>();
UserDefinedObject userDefinedObject = new UserDefinedObject();
stuff.put(userDefinedObject, 1);
System.out.println(stuff.get(userDefinedObject));
}
}