我想知道是否可以将以下代码转换为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()


这个问题来自教程,提示使用的是filtermap。我遇到的困难是如何在不启动空持有人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;
    }

}

07-24 22:17