java-8 - Java流:将一个对象的列表转换为另一个
问题描述
我正在尝试在 Stream 中学习地图功能
public class EmployeeInformationTest {
public static void main(String args[]) {
List<Employee> employees = Arrays.asList(
new Employee("Jai"),
new Employee("Adithya"),
new Employee("Raja"));
List<String> names = employees.stream()
.map(s -> s.getEmployeeName()) // Lambda Expression
.collect(Collectors.toList());
System.out.println(names);
}
}
我们有上面的代码,不知何故它给了我们员工列表中的字符串列表。说,我们有其他类 Person ,其中我们有字段作为名称
public class Person {
private String name;
}
那么通过映射或流中的其他函数是否可行,以便我可以在上面的代码中获取人员列表而不是字符串列表
解决方案
当然,只需将map
功能更改为:
.map(s -> new Person(s.getEmployeeName()))
或者如果没有这样的构造函数:
.map(s -> {
Person p = new Person();
p.setName(s.getEmployeeName());
return p;
})
推荐阅读
- python - 自动启动后 Tkinter GUI 无法正常运行
- python - 让psychopy builder每3张图像后等待响应
- c# - 用 C# 编写一个程序,该程序使用迭代二分搜索算法使用他/她的名字搜索人的年龄
- python - 如何最小化嵌套循环中字符之间的空间?
- html - 如何保存 html 标签的单选框选择和文本框值
- python - Selenium 发送密钥不适用于 Instagram 评论
- r - 为什么在合并两个数据框时出现此错误?
- angular - 在 Angular 库中保留符号链接
- java - 如何在运行 gradle compileJava 时修复相关子项目中的“找不到符号错误”
- html - 按 Enter 键或单击按钮提交 Angular