在Hashtable中使用两个Integers的对象作为键

问题描述 投票:0回答:1

我正在尝试使用密钥对(例如:start,end)来保存Hashtable中记录的距离列表。然后我很快意识到我试图做的事情,以下摘要中的样本不应该起作用

import java.util.*;

public class Test {

    public static void main(String[] args) { 
        Hashtable<test1, Integer> test = new Hashtable<test1, Integer>();
        test1 a = new test1(2, 3);
        test.put(a, 6);
        System.out.println(test.get(a)); //prints 6
        test1 b = new test1(2, 3);
        System.out.println(test.get(b)); //prints null
    }
}

class test1 {
    public int a, b;
    public test1(int a, int b){
        this.a = a;
        this.b = b;
    }
}

我知道Hashtable.get()函数使用引用作为对象而不是内部的值,所以我想知道是否有办法将2变量键映射到Hashtable或另一种可能的解决方案,以便从中获取值Key,Value对可以在线性时间内完成。

java hashtable
1个回答
0
投票

请尝试在test1类中使用@overide注释创建一个.equals()方法。那应该可以解决你的问题。点击此处查看更多信息 - https://www.geeksforgeeks.org/overriding-equals-method-in-java/

© www.soinside.com 2019 - 2024. All rights reserved.