comparable接口,arrayList<>排序

https://blog.csdn.net/chunxiaqiudong5/article/details/52760058

1.要比较的实体类继承Comparable接口

2.重写comparaTo()方法;在该方法中可以设置计较策略,

result=this.age.compareTo(o.getAge());

result==0 表示this.age == o.getAge()

result == 1 表示 this.age > o.getAge()

result ==-1 表示this.age <o.getAge()

3.Collection.sort(sList);

package com.example.study.comparabel;/*** @program: demo* @description: 测试实体类* @author: sjk* @create: 2018-09-13 15:23**/public class Student implements Comparable<Student> {private Integer age;private Integer score;private String name;public Student(Integer age, Integer score, String name) {this.age = age;this.score = score;this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getScore() {return score;}public void setScore(Integer score) {this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Student{" +"age=" + age +", score=" + score +", name='" + name + '\'' +'}';}@Overridepublic int compareTo(Student o) {//o是当前传入的 strudent//this 是下一个要比较的student//this.age和o.age 相等 result=0//this.age>o.age result=1//this.age<o.age result=-1int result =0;result=this.age.compareTo(o.getAge());if(result==0){result=this.score.compareTo(o.getScore());}return result;}}
import org.junit.Test;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @program: demo* @description: 测试* @author: sjk* @create: 2018-09-13 15:30**///@RunWith(SpringRunner.class)//@SpringBootTestpublic class ComparableTest {@Testpublic void test1() {List<Student> sList = new ArrayList<>();Student s1 = new Student(18,80,"张三");Student s2 = new Student(19,81,"张四");Student s3 = new Student(20,83,"张五");Student s4 = new Student(20,82,"张六");sList.add(s2);sList.add(s3);sList.add(s4);sList.add(s1);Collections.sort(sList);for (Student s : sList) {System.out.println(s.toString());}}}

comparable接口,arrayList中对象排序相关推荐

  1. 十三、实现Comparable接口和new ComparatorT(){ }排序的实现过程

    参考:https://www.cnblogs.com/igoodful/p/9517784.html Collections有两种比较规则方式,第一种是使用自身的比较规则: 该类必须实现Compara ...

  2. arraylist怎么在mysql中排序_对ArrayList中对象元素进行排序

    rrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用. 实现Comparator接口必须实现compare方法,自己可以去看API帮助 ...

  3. java 匿名类实现6_java匿名内部类,以及实现Comparato和Comparable接口实现对对象的排序...

    匿名内部类的声明使用方式, Comparabletor接口实现,需要先导入包,再实现Comparator的对象比较的方法,并且需要新声明比较器类去实现此接口,再用比较器类新建对象调用compare(O ...

  4. java中对象排序_java中 对象的排序

    1:排序类 package com.tixa.bad.customer.util; import java.util.ArrayList; import java.util.Collections; ...

  5. Java 中类的比较与排序方法(应用Comparable接口与Comparator接口)通俗易懂

    引言 在平时写Java的程序的时候,如果要进行一些基本类型的变量的比较,可以很方便得调用Math.max().Math.min()等方法,如果要对数组或者列表进行排序,也可以用Arrays.sort( ...

  6. Java中的冒泡排序,Comparator接口和Comparable接口的简单使用

    冒泡排序 冒泡排序是一种常见的排序方法,按照一定的规则(比如从小到大或者从大到小的顺序)对一组数据进行排序.而在Java开发中,也经常用到冒泡排序.我们就以下面的一个例子来讲解冒泡排序算法. 给定一个 ...

  7. Java中ArrayList 元素的排序

    ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减. <一> 排序字符串的ArrayLi ...

  8. Java中的Comparable接口和Comparator接口

    介绍 Comparable<T>接口和Comparator<T>接口都是JDK中提供的和比较相关的接口.使用它们可以对对象进行比较大小,排序等操作.这算是之后排序的先导知识吧. ...

  9. Java基础之Comparable接口和Comparator接口的比较

    前言 就是普普通通的写这么一篇文章,java集合类估计java程序猿都知道,那就写一点小众的. 在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那 ...

最新文章

  1. 使用FormData进行Ajax请求异步上传图片案例
  2. 配置WCF同时支持WSDL和REST,swaggerwcf生成文档
  3. 单调栈 leetcode整理(三)
  4. php默认语法,php语法基本规则
  5. python将excel文件变成txt文件
  6. 有知识和没有知识的两种人,哪种人最幸福,他们的区别在哪里?
  7. 中缀表达式求值,中缀表达式转化为二叉树
  8. Excel中怎么查找重复值
  9. ubuntu18.04 使用scrcpy将安卓手机投屏到电脑
  10. H3C服务器出厂系统密码,H3C S3100交换机不知道密码如何恢复出厂设置
  11. lombook插件安装
  12. 去掉你代码里的 document.write(script...
  13. hdu4415 Assassin’s Creed (贪心)
  14. 靠给员工画大饼,一口气创办10家公司身价过亿,吓傻周鸿祎!
  15. Ubuntu安装Beyond Compare(五)
  16. DSS部署-7、配置Python
  17. html js中英切换,使用js实现URL中的中英文转化 - 小俊学习网
  18. mysql最新版安装
  19. 音频数据格式:PCM,WAV,MIDI
  20. EAS小贷系统(财务业务一体化)

热门文章

  1. EMD 在无损检测中超声检测中的应用
  2. 文远知行与禾赛合作升级,半固态激光雷达落地L4级自动驾驶
  3. request 的相关请求方法
  4. 用python画小人_pythonh制作抖音上非常火的送心小人
  5. 小视频app源码开发不可忽视的重点在这里
  6. java饥荒,饥荒DTS服務器modoverrides.lua生成工具
  7. 微信小程序下拉加载数据
  8. 【Java多线程】了解线程的锁池和等待池概念
  9. linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器
  10. linux防火墙开启udp,Linux防火墙开放端口