为什么基于流的方法需要这么长时间才能完成?

问题描述 投票:0回答:2

我一直在HackerRank进行一些实践测试,并决定只使用流来解决它(这是个人的挑战)。我做的。该程序总体上有效。但是,当涉及到[[大量数据]时,程序需要花费[[long的时间来完成。因此,最终由于“由于超时而终止:(”),我没有解决测试。我完全同意。当我在自己的PC上运行该程序时,不仅花了很长时间,而且工作期间CPU温度暴涨...

这是我创建的代码: OptionalInt maxDuplicate, result; Set<Integer> duplicates; List<Integer> duplicatesCount; duplicatesCount = arr.stream() .map(x -> Collections.frequency(arr, x)) .collect(Collectors.toList()); maxDuplicate = duplicatesCount.stream().mapToInt(Integer::intValue).max(); duplicates = arr.stream() .filter(x -> Collections.frequency(arr, x) == maxDuplicate.getAsInt()) .collect(Collectors.toSet()); result = duplicates.stream().mapToInt(Integer::intValue).min(); return result.getAsInt();

有人可以向我解释吗?通常,流是否会对CPU造成很大压力?还是仅仅是这个程序?

PS。我上面提到的数据(该程序无法处理的数据)的73966位数字是1到5。

我一直在HackerRank进行一些实践测试,并决定只使用流来解决它(这是个人的挑战)。我做的。该程序总体上有效。但是,当涉及到...

java stream cpu cpu-usage
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.