Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java8特性计算列表中的元素数 List strList1=Arrays.asList(“aaa”、“bbb”、“ccc”); List strList2=Arrays.asList(“ddd”、“eee”、“fff”); List=Arrays.asList(strList1,strList2); int noOfElements=(int)list.stream().flatMap(i->i.stream()).count(); 系统输出打印LN(noOfElements);_Java_Java 8 - Fatal编程技术网

使用java8特性计算列表中的元素数 List strList1=Arrays.asList(“aaa”、“bbb”、“ccc”); List strList2=Arrays.asList(“ddd”、“eee”、“fff”); List=Arrays.asList(strList1,strList2); int noOfElements=(int)list.stream().flatMap(i->i.stream()).count(); 系统输出打印LN(noOfElements);

使用java8特性计算列表中的元素数 List strList1=Arrays.asList(“aaa”、“bbb”、“ccc”); List strList2=Arrays.asList(“ddd”、“eee”、“fff”); List=Arrays.asList(strList1,strList2); int noOfElements=(int)list.stream().flatMap(i->i.stream()).count(); 系统输出打印LN(noOfElements);,java,java-8,Java,Java 8,我想计算单个字符串的数量(如上面代码片段中所做的)。我可以在展平列表后执行此操作,但我想在不使用flatMap()的情况下执行相同的。一定有办法弄到伯爵。提前感谢。您可以将各个列表映射到它们的大小,并计算总和: List<String> strList1 = Arrays.asList("aaa", "bbb", "ccc"); List<String> strList2 = Arrays.asList("ddd", "eee", "fff");

我想计算单个
字符串的数量(如上面代码片段中所做的)。我可以在展平列表后执行此操作,但我想在不使用
flatMap()
的情况下执行相同的。一定有办法弄到伯爵。提前感谢。

您可以
将各个列表映射到它们的
大小
,并计算
总和

    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);
或者使用
reduce
,如@MarkusBenko所建议:

int noOfElements = list.stream().mapToInt(List::size).sum();

完美的我们是否可以使用
reduce
int noOfElements=list.stream().reduce(0,(i,l)->i+l.size(),(i,j)->i+j)
@NisargPatil当然,只需使用
.reduce(0,(x,y)->x+y)
而不是
sum()
,但你为什么要这样做?只是想深入理解这件事。谢谢list.size()不起作用?
int noOfElements = list.stream().reduce(0, (i, l) -> i + l.size(), (i, j) -> i + j)