21xrx.com
2024-11-22 09:27:18 Friday
登录
文章检索 我的文章 写文章
使用Java Comparator进行排序
2023-06-12 06:12:27 深夜i     --     --
Java 排序 Comparator

Java中的Comparator接口提供了一种灵活的比较方式,允许我们对不同对象进行排序。这对于需要自定义排序顺序的开发者来说非常有用。通过使用Comparator,我们可以在排序时指定排序规则,而不是由对象本身定义排序规则。

下面是一个使用Java Comparator进行排序的示例:


import java.util.*;

public class Car {

  private String make;

  private String model;

  private int year;

  public Car(String make, String model, int year)

    this.make = make;

    this.model = model;

    this.year = year;

  

  public String getMake()

    return make;

  

  public void setMake(String make)

    this.make = make;

  

  public String getModel()

    return model;

  

  public void setModel(String model)

    this.model = model;

  

  public int getYear()

    return year;

  

  public void setYear(int year)

    this.year = year;

  

  @Override

  public String toString() {

    return "Car{" +

        "make='" + make + '\'' +

        ", model='" + model + '\'' +

        ", year=" + year +

        '}';

  }

  public static void main(String[] args) {

    List cars = new ArrayList<>();

    cars.add(new Car("Toyota", "Corolla", 2019));

    cars.add(new Car("Honda", "Civic", 2018));

    cars.add(new Car("Ford", "Mustang", 2020));

    cars.add(new Car("Chevrolet", "Camaro", 2017));

    System.out.println("Before sorting:");

    for (Car car : cars) {

      System.out.println(car);

    }

    // Sort by make

    Collections.sort(cars, new Comparator () {

      @Override

      public int compare(Car car1, Car car2) {

        return car1.getMake().compareTo(car2.getMake());

      }

    });

    System.out.println("\nAfter sorting by make:");

    for (Car car : cars) {

      System.out.println(car);

    }

    // Sort by year

    Collections.sort(cars, new Comparator () {

      @Override

      public int compare(Car car1, Car car2) {

        return car1.getYear() - car2.getYear();

      }

    });

    System.out.println("\nAfter sorting by year:");

    for (Car car : cars) {

      System.out.println(car);

    }

  }

}

在上面的示例中,我们创建了一个汽车类,该类具有制造商,型号和年份属性。然后我们将几辆汽车添加到List中,并通过使用不同的比较器来按制造商和年份排序。

通过使用Java Comparator,我们可以自定义排序顺序,并灵活地适应各种需求。无论是在开发Web应用程序还是在命令行工具中使用,其灵活性都使其成为Java开发人员的常用工具之一。

  
  

评论区

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