我是Java的新手,经常发现我需要对Map
由于值不是唯一的,因此我发现自己将转换keySet为array,然后使用自定义比较器对数组进行排序,该自定义比较器对与键关联的值进行排序。
有没有更简单的方法?
这是通用的版本:
public class MapUtil {
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
List<Entry<K, V>> list = new ArrayList<>(map.entrySet());
list.sort(Entry.comparingByValue());
Map<K, V> result = new LinkedHashMap<>();
for (Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
问题内容: 如何按名称->值对json文件排序?我想按标签名称的asc值显示。任何想法如何转换我的json文件? 这是我的JSON文件的外观: 如果有人帮助我,我将不胜感激。提前致谢。 问题答案: 我建议使用
下面是一个实现: 下面是一个示例用法来检查可操作性:
问题内容: 我需要根据存储在其中的值对我进行排序。在包含存储在手机联系人的名字。 另外,我还要求在对值进行排序时对键进行自动排序,否则你可以说键和值绑定在一起,因此值的任何更改都应反映在键中。 要求的输出: 问题答案: 尝试下面的代码对我来说很好。你可以选择升序和降序 编辑:版本2 使用了新的Java功能,例如流for-each等 如果值相同,则地图将按键排序
我有一个班的学生有以下领域: 字段“状态”可以有2个值:1。现在,2。缺席的 然后我有一个可观察的列表: 因此,我将学生存储在这个列表中。每个学生都有出席或缺席状态。 我需要按状态对这个观察列表进行排序。我希望目前状态的学生在该列表中名列第一。 有什么建议吗? 如果有任何帮助,我将不胜感激。
问题内容: 我想使用abs()对元组进行排序,而无需实际将元组的元素更改为正值。 根据python Wiki(https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions),sorted(list,key =)函数假定使用参数 key 进行排序,而实际上并未更改清单。但是,abs()只需要int(),如果我需要这样做,我还没有想办法将元组变成i
问题内容: 我需要像TreeMap这样排序的地图,但按值排序。我的地图很大,所以我不能随时随地对我的地图进行排序。是否存在解决此问题的良好解决方案?也许存在外部罐子遇到这个? 问题答案: 有多种方法可以满足您的要求。正如您随后澄清的那样,您当前可能有重复的对象,也许您可以用第三方多重映射(Guava,Apache Commons Collections )替换您的对象,然后交换您的键和值- 即