按照特定的字符串顺序排序list

现在写的需求是这样
要返回优惠券 但是要按照特定的券顺序来 对应券的一个属性 是字符串。
也就是说 如何把字符串list 按照特定 的字符串内容 的顺序来排序。
网上这个东西有点不好找,不过也搞出来了,记录一下。
希望可以帮到和我有同样需求的人。
在这里插入图片描述

代码:
代码优化空间其实很大,不过我就不优化了哈懂得都懂。看懂核心就行。
在这里插入图片描述

核心就是利用一个已有顺序的字符串list,用它的indexof返回元素的坐标值。比较坐标值即可拿到自定义顺序。

    public static void main(String[] args) {
        String[] regulation = {"再不用过期了啊!", "已经用了用了", "不听劝过期了把?哼哼"};
        List<String> regulationList = Arrays.asList(regulation);
        String[] test = {"已经用了用了", "不听劝过期了把?哼哼", "再不用过期了啊!", "凑数的"};
        List<String> stringList = Arrays.asList(test);
        Collections.sort(stringList, new Comparator<String>() {
            public int compare(String o1, String o2) {
                int index1 = regulationList.indexOf(o1);
                int index2 = regulationList.indexOf(o2);
                return (index1 == -1 || index2 == -1) ? (index2 - index1) : (index1 - index2);
            }
        });
        stringList.forEach(System.out::println);
    }

运行结果:
在这里插入图片描述

最近事情有点多,写博客这边必须规划下,挤也要把思想记录下来。
最近是自从搞完双11需求之后 写内部应用号发消息的接口(申请+开发自己来的)

在这里插入图片描述

现在在写116需求,mentor这次让我自己写一整个(当然东西不多哈)
,感谢对俺的看好~ (这里开心表情包.jpg)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值