I have a question. How to Sorted List<Map<Sting,Object> and change compare value.
List<Map<String, Object>> dataList=new ArrayList<>();
Map<String, Object> someMap= new HashMap<>();
then i want sorted value and change value.
the someMap temp value like this.
someMap.put("totalPoint",1)
someMap.put("regDate",2022-08-01 06:00)
someMap.put("rank",1)
someMap1.put("totalPoint",2)
someMap1.put("regDate",2022-08-02 08:00)
someMap1.put("rank",2)
someMap2.put("totalPoint",2)
someMap2.put("regDate",2022-08-01 06:00)
someMap2.put("rank",3)
someMap3.put("totalPoint",4)
someMap3.put("regDate",2022-08-01 10:00)
someMap3.put("rank",4)
some logic dataList.add(someMap);
dataList.add(someMap1);
dataList.add(someMap2);
dataList.add(someMap3);
first i'd sotred totalPoint and change rank value
AtomicInteger ai=new AtomicInteger();
List<Map<String, Object>> collect = dataList.stream()
.sorted(Comparator.comparing(o -> String.valueOf(o.get("totalPoint")))).collect(Collectors.toList())
.stream().map(x -> {
x.put("rank", map.size() - ai.getAndIncrement());
return x;
}).collect(Collectors.toList());
That map sort totalpoint and replace rank to map.size() - ai.getAndIncrement()
But I want this result
I need compare date and total point from map
someMap.put("totalPoint",1)
someMap.put("regDate",2022-08-01 06:00)
someMap.put("rank",4)
someMap1.put("totalPoint",2)
someMap1.put("regDate",2022-08-02 08:00)
someMap1.put("rank",3) //compare this
someMap2.put("totalPoint",2)
someMap2.put("regDate",2022-08-01 06:00)
someMap2.put("rank",2)//compare this
someMap3.put("totalPoint",4)
someMap3.put("regDate",2022-08-01 10:00)
someMap3.put("rank",1)
how to use compare this map?