在TreeMap和TreeSet中,compareTo()
和equals()
是否可以基于两个不同的字段?
由于两者都是二叉搜索树,因此左移和右移是基于key.Compare()。所以从理论上讲,我可以根据一个字段进行排序(我将在compareTo()
中使用),但我可以为equals()
和hashCode()
使用单独的字段。
这样做有什么害处吗?根据我的理解,如果我在HashMap或HashSet中使用同一个对象,只要equals()和hashCode()基于同一个字段,就不应该有任何问题。