如何在Java中按字母顺序排列name和lastNames



我不知道如何按字母顺序排列ArrayList<对象>内容按字母顺序排列,我需要订购:-按名称排序-按姓氏订购-按姓氏反向订购

谢谢你的帮助和你的时间!

import java.util.ArrayList;
public class FirstClass {
public static void main(String[] args) {
ArrayList<Object> listPersons = new ArrayList<>();
Person person1 = new Person();
Person person2 = new Person();
Person person3 = new Person();
Person person4 = new Person();
Person person5 = new Person();
person1.setName("Gonzalo");
person1.setLastName("Ramos");
listPersons.add(person1);
person2.setName("Nicolas");
person2.setLastName("Lopez");
listPersons.add(person2);
person3.setName("Sergio");
person3.setLastName("Gonzalez");
listPersons.add(person3);
person4.setName("Emilio");
person4.setLastName("Suarez");
listPersons.add(person4);
person5.setName("Carolina");
person5.setLastName("Chavez");
listPersons.add(person5);

}
}

public class Person {
String name;
String lastName;
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public String getLastName () {
return lastName;
}
public void setLastName (String lastName) {
this.lastName = lastName;
}
}

我试图用不同的方法解决它,但我无法使它动态正确地工作

使用任何java版本8+

List<Person> sortedByName = listPersons.stream().sorted(Comparator.comparing(Person::getName)).collect(Collectors.toList());
List<Person> sortedByLastName = listPersons.stream().sorted(Comparator.comparing(Person::getLastName)).collect(Collectors.toList());
List<Person> reverseSortedByLastName = listPersons.stream().sorted(Comparator.comparing(Person::getLastName).reversed()).collect(Collectors.toList());

最新更新