是否存在有序键值集合数据结构的任何实现(如TreeMap或ConcurrentSkipListMap),其中键等式不依赖于排序(compareTo / Comparator实现)?
我同意,大多数情况下,这两个概念是相互关联的(并允许更高性能的数据结构),但是当你想要平等的概念来强制执行密钥唯一性时,将两者分开是很方便的。
想象一下,有一个C
字段id
和rank
用作Map<C,?>
中的关键字。是否有一种数据结构可让您对ID(hashCode
+ equals
)强制执行唯一性,但是地图按等级排序(compareTo/comparator
)?
编辑: 正如Sotirios Delimanolis在他的评论中指出的那样,这在概念上不可能用这些机制(hashcode / equals / compareTo / comparator)来实现,因为它会违反他们的合同。我想在这些限制之外仍然可以做到,所以我要把它打开。