我一直在使用这种方法从 Map 中获取前 100 个元素。有谁知道番石榴是如何实现这些的?
Ordering<String> valueComparator =
Ordering.natural().onResultOf(
Functions.forMap(WordCounts)).compound(Ordering.natural());
ImmutableSortedMap<String, Integer> SortedWordCounts =
ImmutableSortedMap.copyOf(WordCounts,
Collections.reverseOrder(valueComparator));
Map<String, Integer> TopWordCounts =
SortedWordCounts.headMap(SortedWordCounts.keySet().asList().
get(100));
我在这里没有看到太多细节 http://guava-libraries.googlecode.com/svn/trunk/gwt-javadoc/com/google/common/collect/ImmutableSortedMap.html
我正在尝试考虑这是否效率低下以及是否应该使用像http://en.wikipedia.org/wiki/Selection_algorithm#Linear_general_selection_algorithm_-_Median_of_Medians_algorithm这样的前 k 算法 要运行这样的算法,我必须将映射到一个数组,然后可能又回到一个映射,这让我觉得这可能不值得。