洛阳制作网站ihanshi,如何注册一家投资公司,网页制作官方网站,wordpress 新建模板页大家好#xff0c;我是雄雄。前言#xff1a;我们知道#xff0c;在平时做项目的过程中#xff0c;我们总会用到各种各样的排序#xff0c;或是升序#xff0c;或是降序。在java中#xff0c;要实现排序有好多中方式#xff0c;比如我们耳熟能详的冒泡排序、选择排序等… 大家好我是雄雄。前言我们知道在平时做项目的过程中我们总会用到各种各样的排序或是升序或是降序。在java中要实现排序有好多中方式比如我们耳熟能详的冒泡排序、选择排序等但是我们一般都不用写JDK给我们提供了好多现成方法供我们使用今天我们就来看看java中如何使用Comparator进行排序。1 实现Comparable进行排序 下面我们来看一个简单的例子package org.test;/***
*
* 项目名称BianChengXiGuan
* 类名称Student
* 类描述学生类
* 创建人Mu Xiongxiong
* 创建时间2020-10-19 上午8:47:01
* 修改人Mu Xiongxiong
* 修改时间2020-10-19 上午8:47:01
* 修改备注
* 个人博客https://blog.csdn.net/qq_34137397
* 微信公众号雄雄的小课堂
* version
**/
public class Student implements ComparableStudent{/*** 学生编号*/private int sid;/*** 学生姓名*/private String name;public String getName() {return name;}public void setName(String name) {this.name name;}public int getSid() {return sid;}public void setSid(int sid) {this.sid sid;}/*** * 构造函数 * discription * author Mu Xiongxiong * created 2020-10-19 上午8:47:43 * param sid* param name * 个人博客https://blog.csdn.net/qq_34137397* 微信公众号雄雄的小课堂*/public Student(int sid, String name) {super();this.sid sid;this.name name;}/*** * 构造函数 * discription * author Mu Xiongxiong * created 2020-10-19 上午8:47:48 * 个人博客https://blog.csdn.net/qq_34137397* 微信公众号雄雄的小课堂*/public Student() {super();}//接口中必须要实现的方法//按照sid进行排序//如果传过来的sid比本身的sid小的话返回1升序//如果传过来的sid比本身的sid大的话返回-1降序Overridepublic int compareTo(Student o) {if(sido.sid){return 1;}else if(sido.sid){return 0;}else{return -1;}}}这是一个很简单的Student实体类其中对字段的封装以及构造方法就不在这里说明了。重点看compareTo方法此方法是Comparable接口中的方法我们实现了Comparable接口之后必须要实现该方法。要实现升序和降序肯定少不了比较那么compareTo方法的作用就在此用来比较的代码中compareTo方法中实现的是按照sid进行排序如果传过来的sid比本身的sid小的话返回1升序。如果传过来的sid比本身的sid大的话返回-1降序。然后我们写个测试方法进行测试//对集合进行排序public static void testSortList(){ListStudent stus new ArrayListStudent();stus.add(new Student(1,a));stus.add(new Student(4,d));stus.add(new Student(5,e));stus.add(new Student(2,b));stus.add(new Student(3,c));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());}}运行结果如下 这是升序如果想要降序排序简单的改一下compareTo方法的比较符号即可。按照sid进行排序比较简单那假如现在有这样的需求按照姓名字符顺序降序排序我们应该怎么实现2实现Comparator进行排序 我们看Collections.sort方法他还有一个重载方法Collections.sort(ListlistsComparator c);可以接受一个Comparator实现类我们就可以利用这一点实现对name进行排序代码如下package org.test;import java.util.Comparator;public class SortName implements ComparatorStudent {Overridepublic int compare(Student o,Student o1) {return o1.getName().compareTo(o.getName());}}接着稍微改一下Collections.sort方法如下Collections.sort(stus,new SortName());运行结果 到此排序完成最后大家在思考一下如果name的值为汉字那么可以按照姓名的首字母倒序排序吗往期精彩畅想小组KTV点歌系统简介2020-10-19 SQ小组KTV点歌系统简介2020-10-18 凌云KTV点歌系统功能简介2020-10-17 注意在subList生成子列表之后一定不要随便更改原列表2020-10-15 神奇一行代码实现删除某集合下标20-30的元素2020-10-14 ‘小会计’的转行之旅2020-10-13 子列表只是原列表的一个视图2020-10-12 点分享点点赞点在看