我想知道是否有一个包含这些属性的集合:
例如: 没有订购
(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;
}
答案 0 :(得分:3)
您可以使用Guava的TreeMultimap
来创建有序的多图。这会在同一个键中对值进行排序,但如果您需要按值排序迭代,那么您可以做的最好是交换键和值(并放弃按键查找的能力)
答案 1 :(得分:1)
再读一遍你想得到什么!
您需要有序的值。
(2,1)
(3,1)
(1,2)
(4,2)
在什么情况下,你想要什么?我相信您需要切换键和值并进行有序的密钥收集。
有重复项我会使用一个集合。像这样:
1 - &gt; (2,3)
2 - &gt; (1,4)
类似的东西:
LinkedHashSet<Integer, ArrayList<Integer>>