我有一个类Model
具有以下特征:
class Model {
private String stringA;
private String stringB;
public Model(String stringA, String stringB) {
this.stringA = stringA;
this.stringB = stringB;
}
public String getStringA() {
return stringA;
}
public String getStringB() {
return stringB;
}
}
我想一个映射List<Model>
到一个List<String>
在单个流含有stringA和stringB
List<String> strings = models.stream()
.mapFirst(Model::getStringA)
.thenMap(Model::getStringB)
.collect(Collectors.toList());
要么:
List<String> strings = models.stream()
.map(Mapping.and(Model::getStringA,Model::getStringB))
.collect(Collectors.toList());
当然,他们没有编译,但你的想法。
是它在某种程度上可能吗?
编辑:
例:
Model ab = new Model("A","B");
Model cd = new Model("C","D");
List<String> stringsFromModels = {"A","B","C","D"};
你可以拥有所有的值一个又一个像这样的列表:
List<String> resultSet =
modelList.stream()
.flatMap(e -> Stream.of(e.getStringA(), e.getStringB()))
.collect(Collectors.toList());
传递给该函数flatMap
将被应用到每个元素产生一个Stream<String>
。使用的flatMap
是必要这里展开全部嵌套Stream<Stream<String>>
的Stream<String>
,因此使我们能够收集要素引入List<String>
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句