Java8与番石榴的等价物是什么;那是什么?

Java8与番石榴的等价物是什么;那是什么?,java,java-8,guava,Java,Java 8,Guava,假设我有一个包含列表的类,例如 public static class ListHolder { List<String> list = new ArrayList<>(); public ListHolder(final List<String> list) { this.list = list; } public List<String> getList() { return

假设我有一个包含列表的类,例如

 public static class ListHolder {
    List<String> list = new ArrayList<>();

    public ListHolder(final List<String> list) {
        this.list = list;
    }

    public List<String> getList() {
        return list;
    }
}
如果使用番石榴,则看起来如下:

     List<String> allString = FluentIterable
            .from(holders)
            .transformAndConcat(
                    new Function<ListHolder, List<String>>() {
                        @Override
                        public List<String> apply(final ListHolder listHolder) {
                            return listHolder.getList();
                        }
                    }
            ).toList();
List allString=fluenterable
.来自(持有人)
.transformAndConcat(
新函数(){
@凌驾
公开名单适用(最终名单持有人){
返回listHolder.getList();
}
}
).toList();
我的问题是如何使用Java8流API实现同样的功能?

列出allString=holders.stream()
List<String> allString = holders.stream()
    .flatMap(h -> h.getList().stream())
    .collect(Collectors.toList());
.flatMap(h->h.getList().stream()) .collect(Collectors.toList());
这里有一个关于集合平坦化的老问题:()

.map(ListHolder::getList).flatMap(List::stream)
     List<String> allString = FluentIterable
            .from(holders)
            .transformAndConcat(
                    new Function<ListHolder, List<String>>() {
                        @Override
                        public List<String> apply(final ListHolder listHolder) {
                            return listHolder.getList();
                        }
                    }
            ).toList();
List<String> allString = holders.stream()
    .flatMap(h -> h.getList().stream())
    .collect(Collectors.toList());