Listの要素の順番を逆にしたり並び替えたりする
久しぶりに仕事でJavaを扱っていますが、3ヶ月以上離れると細かいことはなんもかんも忘れてしまっていますね。
今回はListに追加した要素の順番を逆にしたかった時のメモです。
コード
最初はリストを別に用意して一つ一つ入れ替えないといけないかと思いましたが、ちゃんと専用のメソッドが用意されていました。
Java
List<String> samples = new ArrayList<String>();
samples.add("A1");
samples.add("A5");
samples.add("A4");
samples.add("A2");
samples.add("A3");
// 逆順で並べ替え
Collections.reverse(samples);
for (String str : samples) {
System.out.println(str);
}
// 実行結果)
// A3
// A2
// A4
// A5
// A1
要素内の内容で並び替えしたい場合はsortメソッドを利用します。
List<String> samples = new ArrayList<String>();
samples.add("A1");
samples.add("A5");
samples.add("A4");
samples.add("A2");
samples.add("A3");
// 昇順で並べ替え
Collections.sort(samples);
for (String str : samples) {
System.out.println(str);
}
// 実行結果)
// A1
// A2
// A3
// A4
// A5
// 降順で並べ替え
Collections.sort(samples, Collections.reverseOrder());
for (String str : samples) {
System.out.println(str);
}
// 実行結果)
// A5
// A4
// A3
// A2
// A1
sort()メソッドについてはリスト(List)だけでなく配列(Arrays)にも同様のメソッドがあります。
独自クラスのリストを並び替えたい場合、第2引数でComparatorを設定してあげればいいようです。(詳しくは参考リンクを確認してください)