Java使用Collections.sort对中文进行排序方式
目录
- 使用Collections.sort对中文进行排序
- Collections.sort 排序 注解
使用Collections.sort对中文进行排序 使用collections.sort(List list, Comparator super T>)对中文名字进行排序
调用Collator的静态方法getInstance来获取所需语言环境
【Java使用Collections.sort对中文进行排序方式】核心代码:
下面展示 核心代码。
result= Collator.getInstance(Locale.CHINA).compare(o1.getName(), o2.getName());
全部代码,里面有对数字的排序方法,
public class Demo03Sort {public static void main(String[] args) {ArrayListlist01 = new ArrayList<>(); list01.add(1); list01.add(4); list01.add(3); System.out.println(list01); //[1, 4, 3]Collections.sort(list01, new Comparator () {//重写比较的规则@Overridepublic int compare(Integer o1, Integer o2) {//return o2 - o1; //降序排序return o1 - o2; //升序排序}}); System.out.println(list01); //[1, 3, 4]ArrayList list02 = new ArrayList<>(); list02.add(new Student("萧炎",22)); list02.add(new Student("萧薰",20)); list02.add(new Student("萧玉",24)); list02.add(new Student("阿玉",22)); System.out.println(list02); //[Student{name='萧炎', age=22}, Student{name='萧薰', age=20}, Student{name='萧玉', age=24}]Collections.sort(list02, new Comparator() {@Overridepublic int compare(Student o1, Student o2) {//按照年龄升序排序int result = o1.getAge() - o2.getAge(); //如果两人的年龄相同,在使用姓名的第一个字比较if(result == 0 ){//result = o1.getName().charAt(0) - o2.getName().charAt(0); //按照中文名称排序result= Collator.getInstance(Locale.CHINA).compare(o1.getName(), o2.getName()); }return result; }}); System.out.println(list02); //未按照中文排序的结果:[Student{name='萧薰', age=20}, Student{name='萧炎', age=22}, Student{name='阿玉', age=22}, Student{name='萧玉', age=24}]//按照中文排序的结果:[Student{name='萧薰', age=20}, Student{name='阿玉', age=22}, Student{name='萧炎', age=22}, Student{name='萧玉', age=24}]}}
Collections.sort 排序 注解 逆序:
文章图片
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- iOS中的Block