我有一个嵌套列表
TypeOne
具有方法TypeTwo getTypeTwo() { return typeTwo;}
List<List<TypeOne>> nestedListsTypeOne = someMethodPopulate();
我想获得List<List<typeTwo>>
如何翻译?
nestedListsTypeOne.stream()
.foreach(listTypeOne -> map(TypeOne -> TypeOne::getTypeTwo))
.HereIHavingProblem
但是,我不知道该怎么做。
将嵌套列表类型转换为另一种类型的有效方式是什么?
答案 0 :(得分:1)
您需要的关键概念是Collectors。
首先,对于更易于理解的代码,我将创建一个辅助方法来进行内部转换:
public class TypeOne {
public static List<TypeTwo> convert(List<TypeOne> list) {
return list.stream()
.map(TypeOne::getTypeTwo)
.collect(Collectors.toList());
}
然后将其应用于外部列表:
List<List<Type2>> result = nestedListsTypeOne
.stream()
.map(Type1::convert)
.collect(Collectors.toList());
答案 1 :(得分:1)
尝试...
public static List<List<TypeTwo>> translateType(List<List<TypeOne>> nestedListTypeOne) {
List<List<TypeTwo>> nestedListTypeTwo = nestedListTypeOne
.stream()
.map(listTypeOne -> {
return listTypeOne.stream()
.map(typeOne -> typeOne.getTypeTwo())
.collect(Collectors.toList());
})
.collect(Collectors.toList());
return nestedListTypeTwo;
}