1
まず第一に、これは学問的な質問なので、練習が良いかどうかについては心配しません。 TreeSet<"Object">
があり、これをコンパレータでインスタンス化したいとします。このコンパレータは通常の0、-1、および1を返しますが、2つのオブジェクトが同じクラスである場合のみです。したがって、オブジェクトが異なるクラスに属していて、それらを比較する意味がない場合、コンパレータは何を返すべきですか? -1または1?または、コンパイラの契約で、実行時例外をスローしたくない場合は、にがすべての場合の注文を指定することを要求していますか?項目を論理的に比較できないときのコンパレータのベストプラクティス
私はコンパレータを作成する場合、すべての可能な入力の順序を指定する必要があります例外をスローしたくありません。 –
@FaiLau yup、その順序付けは一貫している必要があります。つまり、 'a.compareTo(b)<0 'なら' b.compareTo(a)> 0'を意味し、 'a.compareTo(b)= 0'ならば、 'b.compareTo(a)= 0'も含める必要があります。 – Mureinik