java lambda sort根据集合内每个对象的某个字段进行排序

该文章介绍了如何使用Java对JSONArray中的JSONObject列表按sort字段进行排序,支持正序和倒序,并将排序后的数据转换为List<String>返回。
摘要由CSDN通过智能技术生成

1.需求

已知List<Object>中的每个Object都有个sort字段,Object可以是JavaBean也可以是JsonObject,那么我想根据sort进行集合排序,然后输出新集合。

2.代码

/**
 * 对JsonArray排序,然后组装成List返回
 */
public static List<String> newSortTabList(JSONArray sortArray){
    if(CollectionUtil.isEmpty(sortArray)){
        return null;
    }
    List<String> tabList = new LinkedList<>();
    //正序
	//sortArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getFloat("sort")));
    //倒序
    sortArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getFloat("sort")).reversed());
    //重点是上面2行的排序,这里只是代码冗余做了其他事
    sortArray.forEach(e->{
        tabList.add(((JSONObject) e).getString("tabName"));
    });
    return tabList;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cgv3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值