我正在尝试使用密钥对(例如: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对可以在线性时间内完成。
请尝试在test1类中使用@overide注释创建一个.equals()方法。那应该可以解决你的问题。点击此处查看更多信息 - https://www.geeksforgeeks.org/overriding-equals-method-in-java/