有一个Json具有许多名为id的属性,我必须对其进行排序,然后进行比较,然后必须获取最近添加的3个以id为属性的对象。

restgetAllRecentOrders:获取所有最近的订单

        List<LinkedHashMap> recentOrders = restCalls.restgetAllRecentOrders();
        if (recentOrders.size() > 0) {
            int recentOrder1Id = (int) ((LinkedHashMap) (recentOrders.get(recentOrders.size() - 1))).get("id");
            recentOrders.sort((LinkedHashMap o1, LinkedHashMap o2) -> ((Integer) o1.get("id")).compareTo((Integer) o2.get("id")));


我无法理解我如何在对三个对象进行排序后根据ID进行比较

最佳答案

假设

JSON:

[{
  id=1,
  name=name one,
  desc=description one
}, {
  id=4,
  name=name four,
  desc=description four
},{
  id=3,
  name=name three,
  desc=description three
}, {
  id=2,
  name=name two,
  desc=description two
}, {
  id=0,
  name=name zero,
  desc=description zero
}]


JAVA:

List<Integer> recent3 = recentOrders.stream().map(m -> (int) m.get("id")).sorted().skip(Math.max(recentOrders.size() - 3, 0)).collect(Collectors.toList());

关于java - 排序和比较LinkedHashMap并获取3个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54742190/

10-10 01:19
查看更多