我做了像这样的HashTable:
Hashtable<Integer, Pair> resul = new Hashtable<Integer, Pair>();
int largo, row, col;
当“Pair”是我的类来存储2个Ints时,它看起来像这样:
public class Pair<T, U> {
public final T t;
public final U u;
public Pair(T t, U u) {
this.t = t;
this.u = u;
}
}
所以我在HasTable上添加了元素:
resul.put(largo, new Pair(row, col + 1));
现在我需要一对数字(整数)以便我可以显示它们,我如何获得这些数字?
我想要类似的东西:
if (resul.containsKey(0)) {
//Print my "Pair" numbers here
//or better: Print my first number here
//Print my second number here
}
答案 0 :(得分:2)
您可以在Hashtable中访问您的对象,只需按键值
调用它public synchronized V get(Object key);
示例:
public static void main(String[] args) {
Hashtable<Integer, Pair> result = new Hashtable<Integer, Pair>();
result.put(1, new Pair(1, 1 + 1));
if (result.containsKey(1)) {
Pair pair = result.get(1);
System.out.println(pair.t);
System.out.println(pair.u);
}
}
更好的方法是让实例变量在类中保持私有,并使用getter:
class Pair<T, U> {
private final T t;
private final U u;
public Pair(T t, U u) {
this.t = t;
this.u = u;
}
public T getT() {
return t;
}
public U getU() {
return u;
}
}
因此:
public static void main(String[] args) {
Hashtable<Integer, Pair> result = new Hashtable<Integer, Pair>();
result.put(1, new Pair(1, 1 + 1));
if (result.containsKey(1)) {
Pair pair = result.get(1);
System.out.println(pair.getT());
System.out.println(pair.getU());
}
}