第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; }
その内に配列のソートも書きます…..。