【发布时间】:2015-03-19 11:16:55
【问题描述】:
我创建了一个名为Pair 的类,它是L 和R 的泛型类型,基本上可以让我存储对。
我使用Arraylist 来存储Pair 类型,但我不确定如何根据key/value 对arraylist 进行排序(并可能搜索所有元素)并打印ArrayList。
ArrayList<Pair> a = new ArrayList<Pair>();
Pair p = new Pair(1,1);
a.add(p);
a.add(new Pair(1,3));
//System.out.println(help please);
下面是Pair 类
class Pair<L,R> {
L left;
R right;
public Pair(L left, R right) {
this.left = left;
this.right = right;
}
public L getLeft() { return left; }
public R getRight() { return right; }
@Override
public int hashCode() { return left.hashCode() ^ right.hashCode(); }
@Override
public boolean equals(Object o) {
if (!(o instanceof Pair)) return false;
Pair pairo = (Pair) o;
return this.left.equals(pairo.getLeft()) &&
this.right.equals(pairo.getRight());
}
}
【问题讨论】:
-
声明一个包含原始
Pair实例的ArrayList会给您带来麻烦吗?你编译了吗? -
您在这里使用了大量的原始类型:例如,
Pair而不是Pair<Integer, Integer>。你真的应该解决这个问题,这样你就有类型安全了。