使用Stream进行排序, Stream中操作Person对象,里面有name,age属性,按照年龄进行降序排列的具体代码
时间: 2024-01-01 12:03:27 浏览: 35
好的,这里提供一个使用 Stream 进行排序,操作 `Person` 对象,按照年龄进行降序排列的具体代码:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class PersonSortExample {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
// 添加一些Person对象到List中
personList.add(new Person("Tom", 20));
personList.add(new Person("Jerry", 18));
personList.add(new Person("Alice", 30));
personList.add(new Person("Bob", 25));
// 使用Stream进行排序,按照年龄降序排列
List<Person> sortedList = personList.stream()
.sorted(Comparator.comparingInt(Person::getAge).reversed())
.toList();
// 输出排序后的结果
System.out.println(sortedList);
}
// Person类
static class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
}
```
在这个例子中,我们定义了一个 `Person` 类,包含了 `name` 和 `age` 两个属性。我们使用 `List` 来存放多个 `Person` 对象,然后使用 Stream 进行排序,按照年龄进行降序排列。具体来说,我们使用 `sorted` 方法,传入一个 `Comparator` 对象,使用 `Comparator.comparingInt` 方法来指定按照年龄进行比较,然后使用 `reversed` 方法来指定降序排列。最终,我们得到了一个新的排序后的 `List`,并输出了结果。