我想知道是否有具有这些属性的集合:
- 键,值
- 允许重复值
- 能够按值(value)排序并同时保留重复值(value)。
例如: 没有订购
(1,2)
(2,1)
(3,1)
(4,2)
订购
(2,1)
(3,1)
(1,2)
(4,2)
我尝试使用比较器 treeMap
但它删除了重复值
@Override
public int compare(Object o1, Object o2) {
Comparable valueA = (Comparable) map.get(o1);
Comparable valueB = (Comparable) map.get(o2);
int res = 0;
if (valueA.compareTo(valueB) < 0) {
res = 1;
} else if (valueA.compareTo(valueB) > 0) {
res = -1;
} else {
res = 0;
}
return res;
}
最佳答案
您可以使用 Guava 的 TreeMultimap
创建一个有序的多图。这对值在同一个键内进行排序,但是如果您需要按值对迭代进行排序,那么您最好的办法就是交换键和值(并放弃按键查找的能力) .
关于java - 具有重复值(键,值)的有序集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19597606/