小偷程序做的网站能用吗,山东做网站公司有哪些,九江网站网站建设,分类达人的作用前言#xff1a;上一篇文章我们讲解了java中实现Comparator进行排序 和实现Comparable进行排序#xff0c;我们分别举例根据学号和姓名降序排序#xff0c;原文在这里#xff1a;java中如何对对象排序#xff1f; #xff0c;不过在文章的最后#xff0c;我故意留了个问… 前言上一篇文章我们讲解了java中实现Comparator进行排序 和实现Comparable进行排序我们分别举例根据学号和姓名降序排序原文在这里java中如何对对象排序 不过在文章的最后我故意留了个问题“若姓名是汉字我们上篇文章的方法还可以进行排序吗”答案是不可以的今天我们就这个问题展开阐述汉字按照首字母的先后顺序排序首先我们在上篇文章的代码基础上把集合的值name改成汉字的名称毕竟学生的姓名哪有叫什么a、b、c的代码如下//对集合进行排序public static void testSortList(){ListStudent stus new ArrayListStudent();stus.add(new Student(1,阿三));stus.add(new Student(4,布丁));stus.add(new Student(5,曹操));stus.add(new Student(2,冯胜));stus.add(new Student(3,张三));System.out.println(排序之前);for (Student s : stus) {System.out.println(s.getSid()---s.getName());}//Collections.sort(stus);Collections.sort(stus,new SortName());System.out.println(排序之后\n);for (Student s : stus) {System.out.println(s.getSid()---s.getName());}}按照我们预想的结果升序的结果应该是阿三、布丁、曹操、冯胜、张三下面我们来跑一下程序看看是不是 居然不可以看看问题出在哪里用脚指头都能想得出来问题就出在了SortName类的compare方法上该方法的compareTo只适用于字母字符排序上篇文章的案例就是compareTo方法的代码Overridepublic int compare(Student o,Student o1) {return o.getName().compareTo(o1.getName());}那我们应该如何改呢只需要新加个Collator.getInstance(java.util.Locale.CHINA);即可全部代码如下Overridepublic int compare(Student o,Student o1) {ComparatorObject compare Collator.getInstance(java.util.Locale.CHINA);return compare.compare(o1.getName(),o.getName());}让程序跑一跑看看 那位又问“老师这是降序升序怎么办”好办只需将compare里面的参数调换个位置即可如下Overridepublic int compare(Student o,Student o1) {ComparatorObject compare Collator.getInstance(java.util.Locale.CHINA);return compare.compare(o.getName(),o1.getName());}结果如下 好了今天的分享就到这里我们明天再见往期精彩凌云KTV点歌系统功能简介2020-10-17 注意在subList生成子列表之后一定不要随便更改原列表2020-10-15 神奇一行代码实现删除某集合下标20-30的元素2020-10-14 ‘小会计’的转行之旅2020-10-13 子列表只是原列表的一个视图2020-10-12 “半路出家”的程序猿怎么不被“熊”2020-10-11 某同学工作之后的感悟2020-10-10 点分享点点赞点在看