第5回 ソート(ArrayList)
JavaプログラマーであればArrayListクラスはお馴染みだと思います。
今回はArrayListをソートしてみようと思います。
ArrayListをソートするには「Collections」クラスを使用すると簡単です。
簡単なサンプルですので解説はAPIリファレンスをみて下さい。
public class SortTest {
public static void main(String[] args) {
ArrayList list =new ArrayList();
// 適当に値を代入(10~99までの乱数)
for (int i = 0; i < 20; i++) {
Data data = new Data();
data.a = new Random().nextInt(90) + 10;
data.b = new Random().nextInt(90) + 10;
list.add(data);
}
// 並び替え前の値を表示
System.out.println("----- 並び替え前");
for (Iterator i = list.iterator(); i.hasNext();) {
Data data = (Data)i.next();
System.out.println(data.a + ":" + data.b);
}
// aで並び替え
Collections.sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
Data data1 = (Data)o1;
Data data2 = (Data)o2;
if (data1.a < data2.a) return -1;
if (data1.a > data2.a) return 1;
return 0;
}
});
// aで並び替え後の値を表示
System.out.println("----- aで並び替え後");
for (Iterator i = list.iterator(); i.hasNext();) {
Data data = (Data)i.next();
System.out.println(data.a + ":" + data.b);
}
// bで並び替え
Collections.sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
Data data1 = (Data)o1;
Data data2 = (Data)o2;
if (data1.b < data2.b) return -1;
if (data1.b > data2.b) return 1;
return 0;
}
});
// bで並び替え後の値を表示
System.out.println("----- bで並び替え後");
for (Iterator i = list.iterator(); i.hasNext();) {
Data data = (Data)i.next();
System.out.println(data.a + ":" + data.b);
}
}
}
class Data {
int a;
int b;
}
その内に配列のソートも書きます…..。

