Java - 简单的对象排序 - Comparator

时间:2023-03-08 18:06:03

注:对象排序,就是对对象中的某一字段进行比较,以正序或倒序进行排序。

例:

需要排序的对象:

public class Person {

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

实现排序功能的类:

import java.util.Comparator;

public class OrderUtil implements Comparator<Person> {

@Override
 public int compare(Person p1, Person p2) {
  if (p1 != null && p2 != null) {
   if (p1.age > p2.age) {//此处如果是大于号则为正序,如果是小于号则为倒序
    return 1;
   } else if (p1.age == p2.age) {
    return 0;
   }
  }
  return -1;
 }
}

使用示例:

ArrayList<Person> list = new ArrayList<Person>();
  list.add(new Person(3,"three"));
  list.add(new Person(4,"four"));
  list.add(new Person(2,"two"));
  list.add(new Person(5,"five"));
  list.add(new Person(1,"one"));
  
  Collections.sort(list,new OrderUtil());
  
  for (int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i).age);
  }