Sar*_*abo 2 java collections for-loop java-8 java-stream
如果我有一个对象流,我可以把它变成另一个对象的集合吗?所以,如果我有一个字符串集合,我可以把它变成一个人的集合吗?就像是:
strings.stream().forEach((string) -> {new Person(string);}).collect(Collectors.toList());
public class Person{
private String name;
Person(String name){
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
是的,我建议你尝试map()而不是forEach
List<Person> people = strings.stream()
.map(Person::new)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
注意:虽然Person::new它做同样的事情s -> new Person(s)并不完全相同.在Person::new不创建一个lambda方法,但后者则.在字节代码中,您将看到包含实现的合成方法.
这map是为了:
List<Person> persons = strings.stream()
.map(s -> new Person(s))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |