import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @date 2023/12/19 11:29
*/
public class Main {
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
// java实现List<自定义对象>中某个字段排序
List<Person> personList1 = new ArrayList<>();
List<Person> personList2 = new ArrayList<>();
Person person1 = new Person("1", "f");
Person person2 = new Person("2", "m");
personList1.add(person1);
personList1.add(person2);
personList2.add(person1);
personList2.add(person2);
// java8实现List<自定义对象>中某个字段排序
// 按照姓名字段进行排序
// personList1.sort(Comparator.comparing(Person::getName));// 升序
personList1.sort(Comparator.comparing(Person::getName).reversed());// 降序
// 输出排序结果
for (Person person : personList1) {
System.out.println(person.getName() + " - " + person.getSex());
}
// java8之前实现List<自定义对象>中某个字段排序
// 按照姓名字段进行排序
Collections.sort(personList2, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
// return p1.getName().compareTo(p2.getName()); // 升序
return p2.getName().compareTo(p1.getName()); // 降序
}
});
// 输出排序结果
for (Person person : personList2) {
System.out.println(person.getName() + " - " + person.getSex());
}
}
}
java实现List<自定义对象>中某个字段排序
于 2023-12-19 11:56:15 首次发布