List集合按中文拼音排序,或按自己想要顺序的调整排序

本文介绍了在Java中使用Collections.sort()进行中文拼音排序的方法,以及如何结合StreamAPI的sorted()和自定义swap方法实现其他顺序调整,以提高数据处理效率。
摘要由CSDN通过智能技术生成

1.你要按拼音排序(字母同音依次比后面字母)

        //集合按中文拼音排序
        Collections.sort(collect,new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return chineseCompare(o1,o2);

            }

        });
        //排序方法
        private static int chineseCompare(Object obj1,Object obj2){
            String s1 = (String) obj1;
            String s2 = (String)obj2;
            Collator myCollator = Collator.getInstance(java.util.Locale.CHINA);
            return myCollator.compare(s1, s2);
    }

2.你要其他顺序且原顺序偏差较大,先stream里sorted一下,再通过swap调整顺序

        //成员方法 
       List<String> collect = baseOrganizeService.list(queryWrapper).stream().map(BaseOrganizeEntity::getFullname).sorted().collect(Collectors.toList());
        swap(collect,1,2);
}
    private static <E> void swap(List<E> list, int index1, int index2) {
        //定义第三方变量
        E e = list.get(index1);
        //交换值
        list.set(index1, list.get(index2));
        list.set(index2, e);
    }

我用的第二种,看看效果(先调整好集合顺序再遍历集合去处理数据效率最好):

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值