さて、次のようなオブジェクトの配列があるとします。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)
最初の2つの「from」変数を比較し、下の変数を前に配置します。それらが等しい場合は、2番目の数のペアを比較します。これを行うために、比較メソッドを作成しました
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は、別のクラスで公開されているリストです。