gpt4 book ai didi

java - map 排序列表 : need to sort list of map based on two values at one go

转载 作者:行者123 更新时间:2023-12-01 19:53:23 24 4
gpt4 key购买 nike

需要对具有字符串的 map 列表进行排序,对象条目如下所示,

List<Map<String,Object>> listOfMap = new ArrayList<Map<String,Object>>();
// creating maps
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("Number", 2);
map1.put("Date1", new Date("12-OCT-2018"));// Consider any date
map1.put("Date2", new Date("02-MAY-2017"));// Consider any date

Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("Number", 5);
map2.put("Date1", new Date("12-OCT-2018"));// Consider some date
map2.put("Date2", new Date("01-JAN-2017"));// Consider some date

// ...

Map<String, Object> mapN = new HashMap<String, Object>();
mapN.put("Number", 8);
mapN.put("Date1", new Date("10-JAN-2016"));// Consider some date
mapN.put("Date2", new Date("10-MAY-2016"));// Consider some date

有了上面的 map 值列表,我需要根据日期 1 和日期 2 一次性排序来得到以下输出。

我对上述输入数据所需的 O/p 顺序是:

Number  Date1      Date2
8 10-Jan-16 10-May-16 //mapN
5 12-Oct-18 1-Jan-17 //map2
2 12-Oct-18 2-May-17 //map1

最佳答案

我会将您的 map 对象封装到一个类中。事实上,您可能根本不需要 map ,因为我看到您对每个 map 都使用相同的键(您不能使用类的属性吗?)。

完成此封装后,使该类实现可比较的接口(interface),并在compareTo 方法中使用您需要的条件进行比较。

完成此操作后,您所需要做的就是在列表中使用 .sort() 。

编辑:如果无论如何你都必须保存 map ,请创建一个类

implements Comparator<Map<String, Object>>

在其中比较 map ,并将其作为参数传递给列表的 .sort() 方法。

关于java - map 排序列表 : need to sort list of map based on two values at one go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50506204/

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