java - 使用 filter() 逐个过滤掉元素
问题描述
我将从我的问题开始:
我有一个数组:
int[] arr = { 1,2,3,4,5 };
,我想将值存储到List<Integer> li
这样的:14,13,12,11,10
这些值是如何li
像这样进入列表的?
我们的初始数字是1,2 ,3 ,4和5。我们可以使用五个整数中的四个来计算以下总和:
- 如果我们将除 1 之外的所有内容相加,则我们的和为 14。
- 如果我们将除 2 之外的所有内容相加,则我们的总和为 13。
- 如果我们将除 3 之外的所有内容相加,则我们的总和为 12。
- 如果我们将除 4 之外的所有内容相加,则我们的总和为 11。
- 如果我们将除 5 之外的所有内容相加,则我们的总和为 10。
我的方法和想法:
我以为我已经有了一个int [] arr
,所以我将使它流式传输,现在我将filter
逐个输出每个元素,并将sum
在每次迭代中休息并将其添加到 List li
。
List<Integer> li = IntStream.range(0,1).filter(i-> arr[i] !=i).sum();
^^ 这没有用,我想我可以像下面这样做吗?
IntStream.range(0,1).filter(i-> filter(this is anotherfilter)).sum();
我无法理解这一点,我想用流和 java-8 来解决这个问题。
解决方案
您可以将其分为两个步骤并执行以下操作:
int[] arr = { 1,2,3,4,5 };
int total = Arrays.stream(arr).sum(); // total of the array
List<Integer> output = Arrays.stream(arr)
.mapToObj(integer -> total - integer) // (total - current) value as element
.collect(Collectors.toList());
推荐阅读
- python - Kafka 从 web api 获取数据并写入弹性搜索
- javascript - JavaScript 表单中的过时值问题
- amazon-web-services - 如何设置 SageMaker GrountTruth 标签作业的“任务标题”
- flutter - Flutter:如何转换 Future
到地图 - c# - 可选 XML 属性的自定义 Json 反序列化
- python - 序列模型的 keras 调谐器结果中存在的非现有层的单元
- python - 加载预加载时出错:找不到渲染器
- ruby-on-rails - 如何安装和配置作为 dag rails gem
- tensorflow - 为什么tensorflow有多个版本同时发布。?比如2.5.1,2.4.3,2.3.4同时发布
- java - 为什么我的代码从 0.8 变为 1.0,然后从 0.0 重新开始?