List<String> strList1 = Arrays.asList("aaa", "bbb", "ccc");
List<String> strList2 = Arrays.asList("ddd", "eee", "fff");
List<List<String>> list = Arrays.asList(strList1,strList2);
int noOfElements = (int) list.stream().flatMap(i->i.stream()).count();
System.out.println(noOfElements);
我想计算个人Strings
的数量(如上面的代码段所示)。我可以在展平列表后执行此操作,但我想使用flatMap()
执行相同的而不使用。必须有一些方法来计算。提前谢谢。
答案 0 :(得分:10)
您可以map
将个人列表发送到size
并计算sum
:
int noOfElements = list.stream().mapToInt(List::size).sum();
或者使用reduce
代替@MarkusBenko建议的in comments:
int noOfElements = list.stream().reduce(0, (i, l) -> i + l.size(), (i, j) -> i + j)