我在列表中有一个列表有很多对象。每个对象都选择日期作为字符串列表。现在我想要列表中selectedDates的所有对象。我试过,但它显示以下错误。请帮帮我。 错误:
WEEK_PROD EMPLOYEE ITEM TOTAL_QTY PERC
----------- -------- ---- ----------- ---------------------------------------
1 ANA A 9 36.0000000000000
1 ANA B 16 64.0000000000000
1 CAROL A 8 33.3333333333300
1 CAROL B 16 66.6666666666600
代码:
Type mismatch: cannot convert from List<List<String>> to List<String>
豆:
PlacesListExperienceCartItem expList = cartItemListRepo.save(experienceListCart);
List<String> selectedDateList = expList.getExperienceList()
.stream()
.map(PlacesExperienceCartConfirmRequest::getSelectedDates)
.collect(Collectors.toList());
答案 0 :(得分:4)
您需要.flatMap
而不是.map
List<String> selectedDateList = expList.getExperienceList()
.stream()
.flatMap(a -> a.getSelectedDates().stream())
.collect(Collectors.toList());
.map
方法将函数应用于流的每个元素,即 - &gt;中的一个对象。一个(不同的)对象
.flatMap
方法将流的每个元素转换为新的元素流(在您的情况下是List的元素),因此 - &gt;中的一个对象多个对象。这些新流的所有元素构成.flatMap
返回的流。