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());