CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第8章 その他の Java 8 機能を理解する : 問題 7 : Comparator の reversed メソッド

問題

Comparatorインターフェースのreservedメソッドを呼び出さないで

nullsFirst(naturalOrder()).reserved()

を表わせ。

解答

上の Comparator は

null が先頭に来る昇順の逆順

である。
Java の実際のコード

Comparator<String> comp = Comparator.nullsFirst(Comparator.naturalOrder());
comp = comp.reversed();

となる。

例えば

String[] array = { "abc", null, "xyz", null, "ab", "123" };

をこの Comparator でソートすると

{ "xyz", "abc", "ab", "123", null, null }

になる。

reservedメソッドを呼び出さない版

Comparator<String> comp = Comparator.nullsLast(Comparator.reverseOrder());

まるでド・モルガンの法則を解いているようだ。