Stream流的 list案例
时间: 2023-11-26 11:05:21 浏览: 29
可以参考以下代码片段:
```python
stream_list = [1, 2, 3, 4, 5]
# 使用列表推导式创建一个新的流列表,其中每个元素加上 10
new_stream_list = [x + 10 for x in stream_list]
# 筛选出所有偶数流
even_streams = [x for x in stream_list if x % 2 == 0]
# 对流列表进行排序
sorted_streams = sorted(stream_list)
# 将流列表中所有元素的平均值计算并输出
avg_stream = sum(stream_list) / len(stream_list)
print("Average stream value is:", avg_stream)
```
以上代码演示了如何使用列表推导式、条件筛选、排序和计算平均值等技巧,对 Stream 流列表进行操作。
相关问题
Java Stream流的 list案例
好的,我了解您的要求。以下是一个Java Stream流的 list案例。
假设我们有一个Person类,其中包含属性name和age。我们有一个List<Person>对象,现在我们要使用Java Stream流来过滤出其中年龄大于18岁的人的名字。
代码如下:
```
List<Person> people = new ArrayList<>();
people.add(new Person("Mike", 20));
people.add(new Person("John", 17));
people.add(new Person("Lucy", 25));
List<String> names = people.stream()
.filter(p -> p.getAge() > 18)
.map(Person::getName)
.collect(Collectors.toList());
System.out.println(names);
```
输出结果为:
```
[Mike, Lucy]
```
以上代码中,我们使用Java Stream的filter()方法来过滤出年龄大于18岁的人,然后使用map()方法来将过滤后的Person对象转为其name属性值,最后使用collect()方法将所有name属性值收集到一个List<String>中。
java stream分组求和案例
下面是一个使用Java Stream进行分组求和的例子:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingAndSummingExample {
public static void main(String[] args) {
// 创建一个包含多个学生的列表
List<Student> students = Arrays.asList(
new Student("Alice", "Math", 85),
new Student("Bob", "English", 75),
new Student("Alice", "English", 90),
new Student("Bob", "Math", 80),
new Student("Charlie", "Math", 95)
);
// 使用Stream进行分组求和
Map<String, Integer> sumByStudent = students.stream()
.collect(Collectors.groupingBy(Student::getName, Collectors.summingInt(Student::getScore)));
// 打印每个学生的总分
sumByStudent.forEach((name, totalScore) -> System.out.println(name + ": " + totalScore));
}
static class Student {
private String name;
private String subject;
private int score;
public Student(String name, String subject, int score) {
this.name = name;
this.subject = subject;
this.score = score;
}
public String getName() {
return name;
}
public String getSubject() {
return subject;
}
public int getScore() {
return score;
}
}
}
```
上述例子中,我们创建了一个包含多个学生的列表。然后使用Stream的`groupingBy`方法对学生进行分组,按照学生名字进行分组,并通过`summingInt`方法对每个分组中的学生成绩进行求和。最后,我们遍历结果Map,打印每个学生的总分。
运行上述代码,将会输出:
```
Alice: 175
Bob: 155
Charlie: 95
```
可以看到,学生Alice的总分是175,学生Bob的总分是155,学生Charlie的总分是95。