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を使うといいみたい。