java中如何实现对类的对象进行排序

 更新时间:2020年02月18日 16:16:50   作者:V  
在本篇文章里小编给各位整理一篇关于java中如何实现对类的对象进行排序知识点内容,有兴趣的朋友们可以学习下。

我们需要对类按照类中的某一个属性(或者多个属性)来对类的对象进行排序,有两种方法可以实现,一种方法是类实现Comparable<T>接口,然后调用Collections.sort(List)方法进行排序,另一种方法是类不实现Comparable<T>接口,而在排序时使用Collections.sort(List, Comparator<T>)方法,并实现其中的Comparator<T>接口。

先创建一个简单的学生类:

public class Student {
 private String name;
 private int age;
 public Student() {}

 public Student(String name, int age) {
 this.name = name;
 this.age = age;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }
}

1、通过类实现Comparable<T>接口进行排序

public class Student implements Comparable<Student>{

 private String name;
 private int age;
 public Student() {}

 public Student(String name, int age) {
 this.name = name;
 this.age = age;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }

 /**
 * 将对象按姓名字典序升序排序
 * @param o
 * @return
 */

 @Override

 public int compareTo(Student o) {
 return this.name.compareTo(o.getName());
 }

 @Override
 public String toString() {
 return "Student{" +
  "name='" + name + '\'' +
  ", age=" + age +
  '}';
 }

}

2、通过在Collections.sort()方法中实现Comparable<T>接口来实现排序

public class Client {

 public static void main(String[] args){
 List<Student> students = new ArrayList<>();
 students.add(new Student("a", 18));
 students.add(new Student("c", 19));
 students.add(new Student("b", 20));

 Collections.sort(students, new Comparator<Student>() {
  @Override
  public int compare(Student o1, Student o2) {
  return o1.getAge()>o2.getAge()? -1:(o1.getAge()==o2.getAge()? 0:1);
  }
 });

 for(Student student:students){
  System.out.println(student.toString());
 }
 }
}

以上就是java中实现对类的对象进行排序的详细内容,感谢大家对脚本之家的支持。

相关文章

  • SpringBoot项目如何连接MySQL8.0数据库

    SpringBoot项目如何连接MySQL8.0数据库

    这篇文章主要介绍了SpringBoot项目如何连接MySQL8.0数据库,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • java多态实现电子宠物系统

    java多态实现电子宠物系统

    这篇文章主要为大家详细介绍了java多态实现电子宠物系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • SpringCloud集成Hystrix熔断过程分步分解

    SpringCloud集成Hystrix熔断过程分步分解

    通过hystrix可以解决雪崩效应问题,它提供了资源隔离、降级机制、融断、缓存等功能。接下来通过本文给大家分享SpringCloud集成Hystrix熔断,感兴趣的朋友一起看看吧
    2022-09-09
  • IDEA中配置多个版本的JDK的实现示例

    IDEA中配置多个版本的JDK的实现示例

    IDEA可以配置多个JDK,根据需要使用不同版本的,本文就来介绍一下IDEA中配置多个版本的JDK的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 将List集合中的map对象转为List<对象>形式实例代码

    将List集合中的map对象转为List<对象>形式实例代码

    这篇文章主要介绍了将List集合中的map对象转为List<对象>形式实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 使用java实现云端资源共享小程序的代码

    使用java实现云端资源共享小程序的代码

    这篇文章主要介绍了用java写一个云端资源共享小程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Spring Boot + EasyExcel实现数据导入导出

    Spring Boot + EasyExcel实现数据导入导出

    这篇文章主要介绍了Spring Boot+EasyExcel实现数据导入导出,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • JAVA控制流程break continue的示例代码

    JAVA控制流程break continue的示例代码

    JAVA流程控制中有相关代码可以终止整个流程的进程,他们就是(break和continue),本文通过实例代码介绍下JAVA控制流程break continue的相关知识,感兴趣的朋友一起看看吧
    2022-03-03
  • Java 注解学习笔记

    Java 注解学习笔记

    一直都在使用注解,但是一直都没有用的很明白,后来被逼的发现不搞明白真的就没有办法愉快的写代码了,所以,这篇《Java中的注解学习笔记》就呼之欲出了
    2020-10-10
  • Spring 使用注解方式进行事务管理配置方式

    Spring 使用注解方式进行事务管理配置方式

    本篇文章主要介绍了Spring 使用注解方式进行事务管理配置方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论