我可以使用哪种数据类型?

时间:2012-12-23 17:40:41

标签: java

在Java中。我想存储用户定义的对象和与之相关的整数。我应该使用哪种数据类型? 我已经尝试过HashMap,但显然它不能存储没有equals()方法的对象

2 个答案:

答案 0 :(得分:2)

  

我尝试过HashMap,但显然它不能存储对象   equals()方法

更准确地说,如果不满足以下两个条件之一,则无法将对象用作地图的关键字: -

  • 覆盖equalshashcode
  • 没有覆盖他们。

因此,您可以轻松地将对象用作键,而不是根据第二个条件使用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));
    } 
}