21xrx.com
2024-12-28 13:15:22 Saturday
登录
文章检索 我的文章 写文章
Java Comparator接口:实现自定义排序的利器
2023-06-16 12:44:24 深夜i     --     --
Java Comparator 排序

Java中的Comparator接口是用于实现自定义排序的利器。Comparator可以帮助我们对一个类的对象进行排序,而且不需要修改这个类的本身代码。在Java中,为了实现Comparator接口,只需要实现它的compare方法即可。

下面是一个示例Java代码,演示如何使用Comparator接口对一个类的对象进行排序,代码中我们定义了一个Person类,其中包含了姓名、年龄和性别三个属性。我们需要对Person对象按照年龄从大到小进行排序,可以按照以下步骤进行编写:

1. 创建Person类,包含姓名、年龄、性别三个属性。

2. 创建Comparator接口的实现类,实现compare方法,该方法的返回值表示排序的结果。

3. 调用Collections.sort方法,传入待排序的列表以及Comparator实例即可实现排序。

示例代码如下:


import java.util.*;

public class Person {

  private String name;

  private int age;

  private String gender;

  

  public Person(String name, int age, String gender)

    this.name = name;

    this.age = age;

    this.gender = gender;

  

  

  // getter and setter

  

  @Override

  public String toString() {

    return "Person{" +

        "name='" + name + '\'' +

        ", age=" + age +

        ", gender='" + gender + '\'' +

        '}';

  }

  

  public static void main(String[] args) {

    List personList = new ArrayList<>();

    personList.add(new Person("Tom", 20, "male"));

    personList.add(new Person("Jerry", 18, "female"));

    personList.add(new Person("Lucy", 22, "male"));

    personList.add(new Person("David", 19, "female"));

    // 使用Comparator接口实现按照年龄从大到小排序

    Comparator ageComparator = new Comparator () {

      @Override

      public int compare(Person o1, Person o2) {

        return o2.getAge() - o1.getAge();

      }

    };

    Collections.sort(personList, ageComparator);

    // 输出排序后的结果

    for (Person person : personList) {

      System.out.println(person);

    }

  }

}

上述代码中,我们通过实现Comparator接口的匿名类来实现按照年龄从大到小排序的规则,然后将排序后的结果打印输出即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复