好的,假设我有一个如下所示的对象数组: obj(from, to) 我想通过比较 from 和 to 对该数组进行排序。我想要做的一个例子:假设我有这些参数的对象 (0,2) (2,4) (0,3) (4,5) (2,3)
我希望对象按此顺序排序: (0,2) (0,3) (2,3) (2,4) (4,5)
我希望比较前两个“来自”变量并将较低的变量放在前面。如果它们相等,那么我想要比较第二对数字。为此,我创建了一个比较方法
public int compare (EdgeI e1, EdgeI e2) {
if(e1.from < e2.from) { return -1; }
else if(e1.from == e2.from) {
if(e1.to < e2.to) { return -1; }
else if(e1.to == e2.to) { return 0; }
else if(e1.to > e2.to) { return 1; }
}
return 1;
}
这行得通吗?如果是这样,我将如何通过数组运行这种排序?谢谢你的帮助。
编辑
public class mySorter implements Comparator <EdgeI> {
public int compare(EdgeI e1, EdgeI e2) {
if(e1.from < e2.from) { return -1; }
else if(e1.from == e2.from) {
if(e1.to < e2.to) { return -1; }
else if(e1.to == e2.to) { return 0; }
else if(e1.to > e2.to) { return 1; }
}
return 1;
}
public void sorterM () {
Collections.sort(tet2, new mySorter());
}
}
我收到错误集合无法解析,并且 tet2 无法解析。Tet2 是另一个类中的公共列表。