gpt4 book ai didi

java - 如何在java中对List中的map进行排序

转载 作者:行者123 更新时间:2023-12-01 17:26:11 26 4
gpt4 key购买 nike

 List<Map<String,String>> consolidErr = new LinkedList<Map<String,String>>();

Map m1= new HashMap<String,String>();
m1.put("id","1");
m1.put("value","value1");

Map m2= new HashMap<String,String>();
m2.put("id","2");
m2.put("value","value2");

Map m3= new HashMap<String,String>();
m3.put("id","3");
m3.put("value","value3");

add all m1,m3 and m2 in list

然后根据 map 中的 id 对 map 进行排序,现在我希望列表中的 map 为 m1、m2 和 m3。

现在我想根据 map 中的 id 进行排序,我使用列表迭代来实现这一点,并保留 map 的第一个 id 作为检查器,并与下一个进行比较,如果有比使用内置方法更好的方法,它可以工作.?请给出您的想法。我现在正在使用冒泡排序。

最佳答案

在 java 中执行此操作的最简单方法(或者至少,最少困惑)是使用自定义比较器。

这个想法是,如果您有具有自然排序的对象(任何扩展 Comparable 的对象),您可以只要求排序,例如

Collections.sort(List<Integer> .. 

否则,您可以传入一个比较器来描述您希望如何将对象与您想要的任何自定义逻辑进行比较,例如(粗略地 - 这是我的想法,没有错误检查,但应该足以给你这个想法) -

List<Map<String,String>> consolidErr = ...
enter code here
Collections.sort(consolidErr, new Comparator<Map<String,String>>(){
public int compare(Map<String,String> a, Map<String,String> b){
return a.get("id").compareTo(b.get("id"));}
})

关于java - 如何在java中对List中的map进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com