stream流对对象排序
时间: 2023-12-20 17:32:50 浏览: 88
stream流可以对对象进行排序,可以根据对象的某个属性进行排序。下面是一个示例代码:
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 25));
personList.add(new Person("Bob", 30));
personList.add(new Person("Charlie", 20));
List<Person> sortedList = personList.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
sortedList.forEach(person -> System.out.println(person.getName() + " - " + person.getAge()));
```
上述代码中,我们创建了一个`Person`类,该类有两个属性:`name`和`age`。我们将几个`Person`对象添加到列表中,并使用stream流对列表进行排序,按照年龄从小到大进行排序。最后,我们将排序后的结果打印出来。
输出结果为:
```
Charlie - 20
Alice - 25
Bob - 30
```
相关问题
stream流list对象排序
Stream可以通过使用sorted方法对列表对象进行排序。可以根据指定的字段进行单字段排序,也可以根据多个字段进行排序。
1. 对象单字段排序:
示例代码:
```java
List<People> peopleList = ...; // 假设已存在一个People对象的列表
peopleList = peopleList.stream()
.sorted(Comparator.comparing(People::getJgId))
.collect(Collectors.toList());
```
以上代码将根据People对象的jgId字段进行升序排序。
2. 对象多字段排序:
示例代码:
```java
List<People> peopleList = ...; // 假设已存在一个People对象的列表
peopleList = peopleList.stream()
.sorted(Comparator.comparing(People::getJgId)
.thenComparing(People::getName)
.thenComparing(People::getAge))
.collect(Collectors.toList());
```
以上代码将根据People对象的jgId字段进行升序排序,当jgId相同时再根据name字段进行升序排序,当name相同时再根据age字段进行升序排序。
3. 倒序排序:
示例代码:
```java
List<People> peopleList = ...; // 假设已存在一个People对象的列表
peopleList = peopleList.stream()
.sorted(Comparator.comparing(People::getJgId).reversed())
.collect(Collectors.toList());
```
以上代码将根据People对象的jgId字段进行降序排序。
请根据你的需求选择适合的排序方式,并将其应用于你的列表对象。
stream流排序list对象排序
要对一个存储在流中的列表对象进行排序,你可以按照以下步骤进行操作:
1. 从流中读取列表对象并将其存储在一个合适的数据结构中,如ArrayList。
2. 使用Collections.sort()方法对列表对象进行排序,该方法可以对实现了Comparable接口的对象进行排序。如果需要自定义排序规则,可以传递一个Comparator对象给sort()方法。
3. 可选:如果需要将排序后的结果写回到流中,可以使用流的写入操作。
下面是一个示例代码,展示如何对流中的列表对象进行排序:
```java
import java.io.*;
import java.util.*;
public class StreamSortingExample {
public static void main(String[] args) {
// 从流中读取列表对象并存储在ArrayList中
List<String> list = new ArrayList<>();
// 假设这里是从流中读取数据并将其存储在list中的代码
// 对列表对象进行排序
Collections.sort(list);
// 可选:将排序后的结果写回到流中
// 假设这里是将排序后的结果写回到流中的代码
}
}
```
请根据你的具体需求修改和补充代码。记得在读取和写入流时处理可能出现的异常情况。
阅读全文