第9章 Java 7 の機能を復習する : 問題 10 : java.util.Objects クラス その 2
問題
次のLabeledPoint
クラスのcompareTo
メソッドを実装せよ。
public class LabeledPoint { private String label; private int x; private int y; ... }
解答
Java 8 で導入されたComparator
の default メソッドthenComparing
を使えば一発なんだけど、ここは Java 7 なので我慢して…
public int compareTo(LabeledPoint other) { Objects.requireNonNull(other); if (Objects.compare(label, other.label, String.CASE_INSENSITIVE_ORDER) != 0) return Objects.compare(label, other.label, String.CASE_INSENSITIVE_ORDER); else if (Integer.compare(x, other.x) != 0) return Integer.compare(x, other.x); else return Integer.compare(y, other.y); }