如何在入门值和计数上对Guava Multiset进行排序?

pet*_*ust 5 java sorting multiset guava

我有一个Guava,Multiset<Integer>并希望通过按(a)元素值和(b)元素计数排序的条目独立迭代.我用Simplest方法按元素频率的顺序迭代Multiset?

ImmutableMultiset<Integer> entryList = Multisets.copyHighestCountFirst(myIntegerMultiset);
for (Integer i : entryList) {
    System.out.println("I"+i);
}
Run Code Online (Sandbox Code Playgroud)

但这会返回所有条目,而我想要一个排序列表Multiset.Entry<Integer>(每个唯一值一个),这将允许我得到计数​​.

我想独立地得到相同的Multiset.Entry<Integer>排序列表<Integer>.

Lou*_*man 9

Iterable<Multiset.Entry<Integer>> entriesSortedByCount = 
   Multisets.copyHighestCountFirst(multiset).entrySet();
Iterable<Multiset.Entry<Integer>> entriesSortedByValue =
   ImmutableSortedMultiset.copyOf(multiset).entrySet();
Run Code Online (Sandbox Code Playgroud)

基本上,你只需要entrySet(),而不是迭代Multiset自己.

  • 你能解释一下`copyOf()`吗? (2认同)