微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 lambda .stream() 在 java 中按特定键按字母顺序对 List<jsonNode> 进行排序

如何解决如何使用 lambda .stream() 在 java 中按特定键按字母顺序对 List<jsonNode> 进行排序

下面是 JsonNode,需要按关键字“大小”的字母顺序排序。

List<JsonNode> listofSizes =[{"size":"CAL KING","SKU_ID":"68454463"},{"size":"KING","SKU_ID":"68454456"},{"size":"TWIN XL","SKU_ID":"68454425"},{"size":"QUEEN","SKU_ID":"68454449"},{"size":"FULL","SKU_ID":"68454432"},{"size":"TWIN","SKU_ID":"68454418"}]

排序的预期结果是:-

[{"size":"CAL KING","SKU_ID":"68454418"},"SKU_ID":"68454425"}]

我尝试过以下方式:-

listofSizes.stream().filter(sku -> NotEmpty(sku.get("size"))).sorted();  

它不起作用。我也尝试了更多的方法,但没有得到预期的结果。

我现在正在学习 lambda 8。如果您知道这的确切逻辑,请指导我,因为我不想以 foreach 的方式来做。

解决方法

您可以使用version of sorted that takes a Comparator

List<JsonType> sortedBySize = listOfSizes.stream()
    .sorted(Comparator.comparing(jsonObject -> jsonObject.get("size"))
    .collect(Collectors.toList());

无法判断您的 JsonType 是什么,因此您必须将其替换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。