Comparable接口的协定允许不一致的行为:
强烈建议(尽管不是必需的)自然顺序应与等号保持一致。
因此,从理论上讲,JDK中的类可能
compareTo与不一致
equals。一个很好的例子是BigDecimal。
下面是一个与equals不一致的比较器的人为示例(它基本上说所有字符串都是相等的)。
输出:
大小:1
内容:{a = b}
public static void main(String[] args) { Map<String, String> brokenMap = new TreeMap<String, String> (new Comparator<String>() { @Override public int compare(String o1, String o2) { return 0; } }); brokenMap.put("a", "a"); brokenMap.put("b", "b"); System.out.println("size: " + brokenMap.size()); System.out.println("content: " + brokenMap);}


