Java的stream流妙用之排序

        当我们在查询出来的数据,想要按照一定顺序排序,而SQL没办法解决的时候,恰巧排序的顺序的定好的,不会变,那么就可以使用下面的这个方法

先定义一个静态的字典

    public static Map<String, Integer> nameMap;
    static {
        nameMap = new HashMap<>();
        nameMap.put("北京市", 1);
        nameMap.put("上海市", 2);
        nameMap.put("广州市", 3);
        nameMap.put("深圳市", 4);
        nameMap.put("苏州市", 5);
        nameMap.put("杭州市", 6);
        nameMap.put("长沙市", 7);
        nameMap.put("厦门市", 8);
        nameMap.put("泉州市", 9);
        nameMap.put("重庆市", 10);
        nameMap.put("武汉市", 11);
        nameMap.put("乌鲁木齐市", 12);
        nameMap.put("海口市", 13);
    }

比如这样随机写的这个排序,固定要这样去排

而你的SQL查出来其中一个字段有这个城市名

即   

List<CityPolicyStatistics> voList = cityPolicyStatisticsMapper.getCityPolicyStatistics();



voList.get(0).getCity()----->"北京市"

那么就可以用stream流来排序了

return voList.stream().filter(x -> nameMap.get(x.getCity()) != null).sorted(Comparator.comparingInt(o -> nameMap.get(o.getCity()))).collect(Collectors.toList());

这样查出来的数据就能按照你规定的那个字典去排序了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值