stream流倒序排序_java排序之中文排序

news/2024/7/8 2:00:43
一前言

前天公司有个同事有一个这样的一个需求,就是按照中文排序。看似很普通的需求,但是要实现的话,还是有一点点的困难,因为网上的例子不多,都是那种清一色的copy,答案都一样,只能应用于英文的排序。java8的流排序目前还没找到合适的方法。

这个写法也是公司的一个大佬对我说的,挺常见的需求,所以有必要记录一下下。

注意:数据库也有办法支持中文排序。我们这里只讲代码中如何实现。

二如何实现?

两个排序。一个java8的流排序,一个是Comparator排序。

推荐Comparator排序!!!因为中文可以处理。

main测试类

public static void main(String[] args) throws Exception{        List arrayList = new ArrayList();        User user1 = new User("15.88","我");        User user2 = new User("15.88","擦");        User user3 = new User("15.88","嘻嘻");        User user4 = new User("15.88","看");        arrayList.add(user1);arrayList.add(user2);arrayList.add(user3);arrayList.add(user4);        System.out.println(arrayList);            /*java8排序*/        /*arrayList = arrayList.stream()                .sorted(                        Comparator.comparing((User e) -> Double.valueOf(e.getScore())).reversed()                                .thenComparing((User e) -> e.getName())                ).collect(Collectors.toList());        System.out.println(arrayList);*/                          /*分数倒序,名字正序*/        Comparator compareIns = Collator.getInstance(java.util.Locale.CHINA);        arrayList.sort((o1, o2) -> {            int perCom = Double.valueOf(o2.getScore()).compareTo(Double.valueOf(o1.getScore()));            if (perCom == 0) {                return compareIns.compare(o1.getName(), o2.getName());            } else {                return perCom;            }        });        System.out.println(arrayList);    }

User实体类

@Data@AllArgsConstructorpublic class User extends BaseVo{    private String score;    private String name;}

a5687414b529109f73eb8f1b9b1665fc.png

点击下方
阅读原文

http://www.niftyadmin.cn/n/3661293.html

相关文章

使用动态链表实现字符的频度统计_Redis系列专题5-- Redis支持的数据结构及底层实现详解...

Redis除了常用的数据结构String,Hash,List,Set,Zset(sorted set),bit(位图)外,还有 HyperLogLog(2.8.9版本增加),以及Stream(5.0版本新增),下面针对他们的特性一一讲解。String(字符串)String是一组字节。在Redis数据库中&#xf…

领域]在实践中展望。。。(写给DDD注释版)

2006年11月09日 15:44:00 在实践中展望。。。曾经跟朋友戏点读者眼中的图书类型:外文原版和影印版,不是嫌价格太高,就是说外文影响阅读理解;翻译的中文版往往惹来骂声一片;原创的要么说内容浮浅,要么说故事…

背包问题多种贪心_TypeScript实现贪心算法与回溯算法

前言本文将介绍两种算法设计技巧:贪心算法与回溯算法,并用TypeScript将其实现,欢迎各位感兴趣的开发者阅读本文。贪心算法贪心算法遵循一种近似解决问题的技术,期盼通过每个阶段的局部最优选择(当前最好的解),从而达到…

img图片不在div中_python爬取优美图库海量图片,附加代码,一键爬取

优美高清图片为大家提供高清美女套图赏析,非高清不录入,大家的网速要给力。今天教大家爬取优美图库网站中高质量的图片!!简单易上手哦~使用工具:Python 3.6pycharm相关环境:requestsparselxpath主要内容:1、系统分析目…

[瞭望]关于Ruby on rails

2006年10月25日 09:04:00 RoR是一个老早就有了的东东,只是在近日的连番炒作中,才真正引起更多人的关注。我也是这更多人中的一个。大家关注一个事物的时候,出发点大有不同,得出来的结论也千差万别。不过这都没有关系,你…

点云建模步骤_CASS和点云的小秘密

随着无人机、移动测量车等新技术日臻成熟,点云也越来越多的参与到地形绘图中来了。点云已经开启了三维建模/地形绘图的“斜杠”模式。有小伙伴跑来咨询:CASS是否支持点云加载?CASS能否基于点云数据绘制等高线?CASS能否过滤和渲染点…

geopandas安装_Python空间分析||geopandas安装与基本使用

Python空间分析——geopandas安装与基本使用一、geopandas安装二、geopandas数据读取与存储导入包从geopandas自带的数据库中读取数据从本地读取shp数据显示geopandas表格数据从本地读取geojson数据文件保存空间分析是经济、管理、地理多学科方向重点使用的研究方法&#xff0c…

[软工]说不

2006年10月17日 20:09:00 前两天,ZT跟我说,新生太累了,每天加班到2天,已经连续加了好多天的班了。我很明白她的想法,无非是想让我也出面劝一下JH。JH现在负责新生的培训,在我负责的3.2忙得热火朝天的时候&a…