Sorting Map in descending order
我从这个例子中得到了实际的结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | static <K,V extends Comparable<? super V>> List<Entry<K, V>> entriesSortedByValues(Map<K,V> map) { List<Entry<K,V>> sortedEntries = new ArrayList<Entry<K,V>>(map.entrySet()); Collections.sort(sortedEntries, new Comparator<Entry<K,V>>() { @Override public int compare(Entry<K,V> e1, Entry<K,V> e2) { return e2.getValue().compareTo(e1.getValue()); } } ); return sortedEntries; } |
我在这个网站上找到的;在这里。
现在,我已经实现了这段代码,它确实有效。我知道发生了什么,在很大程度上。我不完全理解的代码的唯一部分在方法头中,特别是:
1 | static <K,V extends Comparable<? super V>> |
号
如果有人能向我解释这部分代码,我将非常感激。特别是我为什么要在这个上下文中使用super。
我对Java相当陌生,所以尝试了解使用不同的技术,而不是仅仅把它们扔进我的代码,而不真正了解正在发生的事情。
注意:我会对原始答案发表评论,但只有当我的声誉超过50时,我才能发表评论。我希望这样的帖子不会违反任何规则!
此行将使方法成为泛型。您可以在类头或方法声明中使用泛型类型。在这种情况下,方法声明。
1 | static <K,V extends Comparable<? super V>> |
声明一个未绑定的泛型类型
额外阅读
- 查看Java泛型
这种观点认为,