Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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
Java 如何制作forEach_Java_Foreach - Fatal编程技术网

Java 如何制作forEach

Java 如何制作forEach,java,foreach,Java,Foreach,我有一个关于: Map<String, Integer> map = new LinkedHashMap<>(); for (String o: gamma) map.merge(o, 1, (a, b) -> a + b); 但我确实喜欢这样我收到了一条信息: 无法对数组类型字符串[]调用forEach((e)->{}) 我做错了什么?如何实现这个forEach?只需使用Stream.of:Stream.of(gamma).forEach(e

我有一个关于:

Map<String, Integer> map = new LinkedHashMap<>();       
for (String o: gamma)
   map.merge(o, 1, (a, b) -> a + b);
但我确实喜欢这样我收到了一条信息: 无法对数组类型字符串[]调用forEach((e)->{})


我做错了什么?如何实现这个forEach?

只需使用
Stream.of
Stream.of(gamma).forEach(e->map.merge(e,1,(a,b)->a+b))


并用于您的下一个问题

只需使用
Stream.of
Stream.of(gamma).forEach(e->map.merge(e,1,(a,b)->a+b))

并用于您的下一个问题

这样做

Arrays.asList(gamma).forEach(e -> map.merge(e, 1, (a, b) -> a + b));
您的gamma是字符串数组,请在此基础上转换为list to foreach。

这样做

Arrays.asList(gamma).forEach(e -> map.merge(e, 1, (a, b) -> a + b));
您的gamma是字符串数组,请在此基础上转换为list to foreach。

另一种方法:

Arrays.stream(gamma).forEach(e -> map.merge(e, 1, (a, b) -> a + b));
另一种方法:

Arrays.stream(gamma).forEach(e -> map.merge(e, 1, (a, b) -> a + b));

什么是
gamma
?gamma是一个字符串数组-String[]除了主要问题之外,它看起来像是要创建某种直方图。在这种情况下,请从中查看解决方案。在您的例子中,您可以使用
Stream.of(gamma).collect(Collectors.groupingBy(Function.identity(),Collectors.counting())创建
Map直方图
或者如果您添加静态导入,您可以将此代码缩短为
Stream.of(gamma).collect(groupby(identity(),counting())
什么是
gamma
?gamma是一个字符串数组-String[]除了主要问题之外,您似乎还想创建某种直方图。在这种情况下,请从中查看解决方案。在您的例子中,您可以使用
Stream.of(gamma).collect(Collectors.groupingBy(Function.identity(),Collectors.counting())创建
Map直方图
或者如果您添加静态导入,您可以将此代码缩短为
Stream.of(gamma).collect(groupby(identity(),counting())
我可以不使用Stream API吗?@vesnaves您使用的
Arrays.asList(gamma).forEach(…)
但是Stream有什么问题吗?为什么不使用
Stream
API<代码>数组。流
在这里也是可能的,但我不明白你为什么要对自己施加这样的限制。@Dici这将中断并行执行,通常这被记录为不必要的副作用。更干净的方法是
Arrays.stream(gamma).collect(Collectors.groupingBy(Function.identity(),Collectors.counting())
大多数不用于并行执行的代码将在多线程上下文中中断。我具体回答的是如何从数组创建流。否则,是的,在使用流时建议使用纯函数。我可以不使用流API吗?@vesnaves您使用
Arrays.asList(gamma).forEach(…)
但是流有什么问题?为什么不使用
Stream
API<代码>数组。流
在这里也是可能的,但我不明白你为什么要对自己施加这样的限制。@Dici这将中断并行执行,通常这被记录为不必要的副作用。更干净的方法是
Arrays.stream(gamma).collect(Collectors.groupingBy(Function.identity(),Collectors.counting())
大多数不用于并行执行的代码将在多线程上下文中中断。我具体回答的是如何从数组创建流。否则,建议在使用流时使用纯函数。