データを格納したArrayListを使ってList表示などよくやる方法です。
一つのデータをソートするより、複数条件でソートしたい場合どうすればいいのかメモです。
Collections.sort()を使ってソートします。
ソート条件はComparatorインターフェースの実装クラスで定義します。大小関係でソートされますが、同値の場合ソートされません。同値の時に次の要素でソートする事で複数条件でのソートを実現します。
例としてデータクラスに格納されているorderで比較し昇順にソートし、orderが同じならpointで比較します。
▽データ保持用クラス(Data.java)
public class Data {
private String name;
private int order;
private int point;
public Data(String name, int order, int point){
this.name = name;
this.order = order;
this.point = point;
}
public String getName(){
return this.name;
}
public int getOrder(){
return this.order;
}
public int getPoint(){
return this.point;
}
}
▽ソート
public void arrayTest(){
ArrayList dataList = new ArrayList();
dataList.add(new Data("data1", 5, 5));
dataList.add(new Data("data2", 1, 6));
dataList.add(new Data("data3", 1, 1));
dataList.add(new Data("data4", 6, 2));
dataList.add(new Data("data5", 1, 2));
dataList.add(new Data("data6", 3, 6));
for(int i=0; i