我有一个Guava Multiset<Integer>
,想通过对(a)元素值和(b)元素计数排序的条目独立地进行迭代。我已经使用Simplest way to iterate through a Multiset in the order of element frequency?作为
ImmutableMultiset<Integer> entryList = Multisets.copyHighestCountFirst(myIntegerMultiset);
for (Integer i : entryList) {
System.out.println("I"+i);
}
但这会返回所有条目,而我想要一个
Multiset.Entry<Integer>
的排序列表(每个唯一值一个),它可以让我获得计数。我想独立地获得
Multiset.Entry<Integer>
的相同列表,该列表按<Integer>
的值排序。 最佳答案
Iterable<Multiset.Entry<Integer>> entriesSortedByCount =
Multisets.copyHighestCountFirst(multiset).entrySet();
Iterable<Multiset.Entry<Integer>> entriesSortedByValue =
ImmutableSortedMultiset.copyOf(multiset).entrySet();
基本上,您只需要
entrySet()
,而不是遍历Multiset
本身。