如果我总是在Comparator.compare()中返回0,为什么我最终在我的Set中有1个项目?

red*_*hoe 0 java collections

我为TreeSet编写了一个自定义Comparator.为了调试,我决定硬连线"compare()"以始终返回0.令我惊讶的是,一个项目被输入到Set中.

那为什么会这样?我正在尽力理解"set.add()"和"compare()"之间的关系.

SLa*_*aks 6

始终返回零意味着所有项目都等于所有其他项目.

这不会阻止您添加单个可能的项目.