当前位置: 首页 > 面试题库 >

使用两个(或多个)对象作为HashMap键

聂永怡
2023-03-14
问题内容

我想将某些对象存储在HashMap中。问题是,通常您只使用一个对象作为键。(例如,您可以使用字符串。)要使用多个对象,我想这样做。例如,一个类和一个字符串。有没有简单干净的方法来实现这一目标?


问题答案:

您的密钥必须实现hashCode和equals。如果它是 SortedMap ,则还必须实现Comparable接口

public class MyKey implements Comparable<MyKey>
{
private Integer i;
private String s;
public MyKey(Integer i,String s)
{
this.i=i;
this.s=s;
}

public Integer getI() { return i;}
public String getS() { return s;}

@Override
public int hashcode()
{
return i.hashcode()+31*s.hashcode();
}

@Override
public boolean equals(Object o)
{
if(o==this) return true;
if(o==null || !(o instanceof MyKey)) return false;
MyKey cp= MyKey.class.cast(o);
return i.equals(cp.i) && s.equals(cp.s);
    }

   public int compareTo(MyKey cp)
     {
     if(cp==this) return 0;
     int i= i.compareTo(cp.i);
     if(i!=0) return i;
     return s.compareTo(cp.s);
     }


 @Override
    public String toString()
       {
       return "("+i+";"+s+")";
       }

    }

public Map<MyKey,String> map= new HashMap<MyKey,String>();
map.put(new MyKey(1,"Hello"),"world");


 类似资料:
  • 问题内容: 我想知道是否有某种方式可以在两个或多个Servlet之间共享变量或对象,我的意思是某种“标准”方式。我认为这不是一个好习惯,但是是构建原型的更简单方法。 我不知道这是否取决于所使用的技术,但我将使用Tomcat 5.5 我想共享一个简单类的对象的Vector(仅公共属性,字符串,int等)。我的意图是在数据库中拥有一个静态数据,当Tomcat停止时,它显然会丢失。(仅用于测试) 问题答

  • 我正在为我的Java类做一个项目。我对这方面有点陌生,所以我很感激你的帮助。本质上,我正在构建一个处理盎司和磅的类。类的一个对象有两个整数变量,一个表示盎司,一个表示磅。该类所需的方法之一要求将该类的一个对象(PoundsOunces)作为参数,添加到调用对象中,并返回总和。我尝试了不同的方法来实现这一点,但我不断收到错误。这是我目前为止最接近的想法。 null

  • 问题内容: 我有一个2D整数数组。我希望将它们放入HashMap中。但是我想从基于数组索引的HashMap访问元素。就像是: 对于A [2] [5],它返回与该键关联的值。但是,如何使用一对密钥创建一个hashMap?或者通常是多个键:以一种我可以使用get(key1,key2,… keyN)来访问元素的方式。 编辑:发布问题3年后,我想再添加一点 我遇到了另一种方法。 数组索引,和可被表示为一个

  • 问题内容: 我想在单个请求中发送多个不同的JSON对象,我觉得在单个请求中像文件一样流式传输多个JSON对象会更好,所以请告诉我是否可行,如果可以的话请给我一个思路要使用Alamofire做到这一点,下面是我要发布的原始正文(应用程序/ json)数据的格式 我尝试了下面的代码,但是由于body参数的格式不正确,因此无法正常工作,这就是我想尝试在单个请求中将多个JSON对象作为流发送的原因,请注意

  • 我目前有一个php脚本,它从两个表返回一个JSON编码的计数(*): } 我在线接收JSON输出: 并且可以通过以下方式确认没有问题:http://jsonlint.com/ 我目前能够引用来自data1的第一条数据,但是我得到了data2的错误消息: 以下是我的JSON代码: 我知道我在编码方面效率不高,所以如果有人对如何简化它有任何建议,我将不胜感激。 另外,我是学习书籍的爱好者,但找不到任何

  • 我有两个不同的XML结构,我想映射到一个域对象。我正在使用MOXy的外部绑定支持,所以我可以选择动态使用哪个绑定。 我的问题是。我有一个如下所示的XML结构: 我想要一个