12億円ほしい人のブログ

メガBIG当たらないかな

Comparator

JavaのComparatorについて、以下の記事で勉強させていただいています。
qiita.com

そのメモをします。

自然順/逆順ソート

import static java.util.Comparator.*;

List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
integerList.sort(naturalOrder());    //自然順ソート
integerList.sort(reverseOrder());    //逆順ソート

① Listインターフェースのsortメソッド
 default void sort(Comparator c)
 では、「指定されたComparatorが示す順序に従って、このリストをソートします。」
 ということです。List (Java Platform SE 8)
② ComparatorインターフェースのnaturalOrderメソッド
 static > Comparator naturalOrder()
 では、「自然な順序でComparableオブジェクトを比較するコンパレータを返します。」
 ということです。Comparator (Java Platform SE 8)

Comparatorは比較関数のことだということなので、比較する式として内部で解釈されているのかと思いますが、まだちょっとsortの引数としてはおまじない感があります。

CASE_INSENSITIVE_ORDER

List<String> stringList = Arrays.asList("ABC", "DEFGH", "IJKL", "abc", "defgh", "ijkl");
stringList.sort(String.CASE_INSENSITIVE_ORDER);

Stringクラスには、
public static final Comparator CASE_INSENSITIVE_ORDER
というフィールドがあります。
「compareToIgnoreCaseと同様にStringオブジェクトを順序付けるComparator」
ということです。String (Java Platform SE 8)