Javaで文字列ソートを行う方法
オブジェクトを並び替えるためにTreeMapを用いたソートは良く使うんだけど
単純な文字列のみのソートはあまり知らなかったので調べてみた。
Collections.sortを使う
List<String> array = new ArrayList<String>(); array.add("a"); array.add("x"); array.add("1"); array.add("b"); array.add("3"); Collections.sort(array); for (String string : array) { System.out.println(string); }
TreeSetを使う
TreeSet<String> array = new TreeSet<String>(); array.add("x"); array.add("a"); array.add("3"); array.add("1"); array.add("b"); for (String string : array) { System.out.println(string); }
Arrays.sort + Comparatorを使う
String[] array = {"x", "a", "b", "3", "1"}; Arrays.sort(array, new Comparator<String>() { @Override public int compare(String obj0, String obj1) { return obj0.compareTo(obj1); } }); for (String string : array) { System.out.println(string); }
結果は全部同じ
1
3
a
b
x
Collections.sortが簡単、Comparatorを使うと独自のソートが実装できる
Collections.sortが簡単ぽい。
複雑なソートを行いたい場合はComparatorを使うといいみたい。
- Comparatorの参考URL