我想知道是否可以将以下代码转换为Java 8 Stream?
List<Borg> newBorgMembers = new ArrayList<>();
// mankind is a List<Individual>
mankind.forEach(id -> newBorgMembers.add(new Borg(id)));
所需结构:
List<Borg> newBorgMembers = mankind.stream().filter().map().collect()
这个问题来自教程,提示使用的是
filter
和map
。我遇到的困难是如何在不启动空持有人List<Borg>
的情况下添加元素。 最佳答案
这是您的流的一小段代码。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class StreamTest {
public static void main(String[] args) {
// Initialize mankind
List<Individual> mankind = new ArrayList<>();
mankind.add(new Individual("A"));
mankind.add(new Individual("B"));
mankind.add(new Individual("C"));
// The stream
List<Borg> newBorgMembers = mankind.stream().map(individual -> new Borg(individual.id)).collect(Collectors.toList());
newBorgMembers.forEach(borg -> System.out.println(borg.id));
}
}
class Individual {
String id;
public Individual(String id) {
this.id = id;
}
}
class Borg {
String id;
public Borg(String id) {
this.id = id;
}
}