私はarreyListにコンパレータを使用してクラスobectsをソートしていますし、arrylistを使用してユーザー定義のソート定義に従ってクラスオブジェクトを並べ替える方法は?
public static Comparator<SortingObjects StuNameComparator = new Comparator<SortingObjects() {
public int compare(SortingObjects s1, SortingObjects s2) {
String StudentName1 = s1.getName().toUpperCase();
String StudentName2 = s2.getName().toUpperCase();
int c;
c = StudentName1.compareTo(StudentName2);
if(c==0){
int rollno1 = s1.getPrice();
int rollno2 = s2.getPrice();
c = rollno1-rollno2;
}
return c;
}};
とその下のような結果得られた場合、私は は、コンパレータの名前
ソースのアルファベット順に順序に従ってソートされたオブジェクトを取得しています:
Student Name Sorting:
[ name=AP, price =0]
[ name=AP, price =0]
[ name=AP, price =0]
[ name=AP, price =0]
[ name=CH, price =0]
[ name=CH, price =0]
[ name=CH, price =0]
[ name=CH, price =0]
[ name=KE, price =0]
[ name=KE, price =0]
[ name=TN, price =0]
しかし、私は次のような出力が必要です:
[ name=CH, price =3]
[ name=CH, price =10]
[ name=AP, price =2]
[ name=AP, price =2]
[ name=AP, price =7]
[ name=AP, price =10]
[ name=TN, price =15]
[ name=KE, price =2]
[ name=KE, price =5]
意味:「CH」は、第1の、その「TN」の後、最後の
「KE」の「AP」は、私が自分で 結果を得ることができるように
出力は 'price = 0'しか表示しないので、問題は' SortingObject'クラスにあり、比較自体ではないようです。問題を見つけるために、このクラスを私たちのために含めることができます。 – SomeJavaGuy
名前や価格だけで、あなたが好きなように並べ替える方法はありません。 – dambros
あなたはどんなタイプの注文を探していますか?あなたの質問は何の命令も定義していません。 – Sanjeev