java8 list 多字段排序(含中文)

1 篇文章 0 订阅
1 篇文章 0 订阅

java8 list 多字段含中文排序

java8 多字段排序(含中文)

关键是这一行:

 result.sort(Comparator.comparing(CityNumber::getSum, Comparator.reverseOrder()).thenComparing((o1, o2) -> Collator.getInstance(Locale.CHINA).compare(o1.getCityName(),o2.getCityName())));

实体代码如下:

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author yujiangcheng
 * @date 2021/2/27 15:17
 * @description CityNumber
 */
@Data
public class CityNumber{
    @ApiModelProperty(value = "城市")
    private String cityName;
    @ApiModelProperty(value = "合计")
    private int sum;
}

测试代码片段如下:

    @Test
    public void listTest() {
       String str = "[{\"cityName\":\"成都\",\"sum\":1},{\"cityName\":\"昆明\",\"sum\":1},{\"cityName\":\"上海\",\"sum\":3},{\"cityName\":\"沈阳\",\"sum\":1},{\"cityName\":\"长沙\",\"sum\":1},{\"cityName\":\"厦门\",\"sum\":2},{\"cityName\":\"宁波\",\"sum\":1},{\"cityName\":\"重庆\",\"sum\":1},{\"cityName\":\"武汉\",\"sum\":3},{\"cityName\":\"天津\",\"sum\":1},{\"cityName\":\"杭州\",\"sum\":2},{\"cityName\":\"苏州\",\"sum\":3},{\"cityName\":\"南昌\",\"sum\":1},{\"cityName\":\"南京\",\"sum\":1},{\"cityName\":\"北京\",\"sum\":2}]";
        List<CityNumber> result = JSON.parseArray(str, CityNumber.class);

        result.sort(Comparator.comparing(CityNumber::getSum, Comparator.reverseOrder()).thenComparing((o1, o2) -> Collator.getInstance(Locale.CHINA).compare(o1.getCityName(),o2.getCityName())));
        for (ProjectCityStage cityStage : result) {
           System.out.println(JSON.toJSONString(cityStage));
        }
    }

最终结果如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值