java 利用filter和map函数打印所有女生姓名
时间: 2024-02-01 14:16:54 浏览: 62
Java-Java函数式编程教程
假设有一个学生类 `Student`,其中包含姓名(`name`)、性别(`gender`)等属性,可以使用 Java 8 中的 Stream API 来实现利用 filter 和 map 函数打印所有女生姓名的功能,具体代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private String gender;
public Student(String name, String gender) {
this.name = name;
this.gender = gender;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("张三", "男"));
students.add(new Student("李四", "男"));
students.add(new Student("王五", "女"));
students.add(new Student("赵六", "女"));
List<String> femaleNames = students.stream()
.filter(s -> s.getGender().equals("女"))
.map(Student::getName)
.toList();
System.out.println("所有女生姓名为:");
femaleNames.forEach(System.out::println);
}
}
```
上述代码中,通过创建一个 `List<Student>` 对象 `students` 存储多个学生信息,然后使用 Stream API 中的 `filter` 和 `map` 函数,先筛选出所有女生信息,再将每个女生的姓名存储到一个 `List<String>` 对象 `femaleNames` 中,最后使用 `forEach` 函数遍历 `femaleNames` 输出每个女生的姓名。
阅读全文