排序并比较 LinkedHashMap 并获取 3 个元素
Sort and Compare LinkedHashMap and fetch 3 elements
有一个 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());
有一个 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());