0

我有一个对象 Edges,它有 5 种不同的整数类型与该对象相关联。像这样:

public class Edge implements Comparable {

int weight, tox, toy, fromx, fromy;

public Edge(int x1, int y1, int x2, int y2, int wei) {
    tox = x1;
    toy = y1;
    fromx = x2;
    fromy = y2;
    weight = wei;

}

public int compareTo(Object obj) {

我想创建这些 objs 的数组列表,然后在列表上调用 contains 以查看任意整数是否在任何这些数据类型的列表中,edge.tox edge.toy edge.fromx 或 edge.fromy ... 。 有没有办法做到这一点?

谢谢你先进

4

2 回答 2

2

将此方法添加到Edge类中

public boolean contains(int num) {
    if(tox == num) return true;
    if(fromx == num) return true;
    if(toy == num) return true;
    if(fromy == num) return true;
    return false;
}

然后你可以这样做:

public Edge getEdgeFromNumber(int number) {
  for(Edge e : myArrayList) { 
      if(e.contains(number)) return e;
  }
  return null; // there are no such edges
}

另外,不要使用原始类型Comparable,您可能想要Comparable<Edge>

于 2013-04-24T21:15:18.497 回答
2

用这个:

public List<Integer> asList() {
    Arrays.asList(weight, tox, toy, fromx, fromy);
}
于 2013-04-24T21:15:26.420 回答