2016-03-29 18 views
-4

私は次のクラスを持っています。ユーザー入力に基づいてJavaでarrayListを並べ替える

class{ 
     String name; 
     int marks; 
}; 

ここでは、ユーザーの入力に基づいてアルファベット順(名前)または降順(マーク)のいずれかでソートする必要があります。 このためにコンパレータ機能を書き込む方法。 ユーザーは、名前を使用してソートするには「n」を、マークを使用してソートするには「m」を入力します。

+3

を参照してください。 – Rehman

+0

ユーザ入力をコンパレータに渡すか、ユーザ入力に基づいてコンパレータを選択します(おそらくこれを行うより良い方法です)。 – Thomas

+0

私はJavaを初めて使い、ArrayListを勉強したので、どうやって起動するのか分かりません。 – Souvik

答えて

1

いずれかを選択し、以下を実行しマークため別のための2つのComparator<> 1を作成し、ユーザの入力に基づきます。

Collections.sort(yourList, yourComparator); 

あなたはこれまでに何をした?sort(List<T> list, Comparator<? super T> c))

public class YourFirstComparator implements Comparator<YourClass> { 
    @Override 
    public int compare(YourClass o1, YourClass o2) { 
     // your logic to return 
     // -1 if o1 is small, 1 is o1 is greater, 0 if both are equals 
     return yourValue 

    } 
} 
+0

これらのコンパレータはどのように見えるでしょうか? –

+0

@SashaSalauyou更新された答え –

+0

を参照してください。私は、すでにOPクラスに 'name'と' makrs'変数があるので、 'Comparator.comparing(e - > e.name)'と 'Comparator.comparing (e - > - e.marks) ' –