ski*_*iwi 9 java dictionary java-8 java-stream collectors
我正在玩Java 8,我知道这必须通过阅读文档来实现,我只是无法找到如何做到这一点.
我有以下工作代码:
long factorProduct = LongStream.rangeClosed(1, maxFactor)
.filter(this::isOptimalFactor)
.reduce((i, j) -> i * j)
.getAsLong();
List<Long> primeFactors = primeFactors(factorProduct);
Run Code Online (Sandbox Code Playgroud)
重要的部分是,我有一个List<Long>是可能有一些重复的Long数字.
现在我想将它转换为a Map<Long, Long>作为键的元素和值的出现.
我以为:
Map<Long, Long> primeFactorCount = primeFactors.stream()
.collect(Collectors.counting());
Run Code Online (Sandbox Code Playgroud)
会工作,但事实并非如此.我查看了java.util.stream.Collectors文档中的示例.
我如何使用这些功能?
nos*_*sid 11
如果要对元素进行分组,则必须使用groupingBy:
import static java.util.stream.Collectors.*;
Map<Long, Long> primeFactorCount = primeFactors.stream()
.collect(groupingBy(p -> p, counting()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |