使用java8功能计算列表中的元素数

时间:2017-02-21 14:34:03

标签: java java-8

    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()执行相同的而不使用。必须有一些方法来计算。提前谢谢。

1 个答案:

答案 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)