gpt4 book ai didi

java - 使用filter()将元素一一过滤掉

转载 作者:行者123 更新时间:2023-11-30 06:01:58 25 4
gpt4 key购买 nike

我将从我的问题开始:

我有一个数组:

int[] arr = { 1,2,3,4,5 }; ,我想将值存储到 List<Integer> li像这样:14,13,12,11,10

这些值是如何进入列表的 li像这样??

我们的初始数字是 1,2 ,3 ,45 。我们可以使用五个整数中的四个计算以下总和:

  • 如果我们将除 1 之外的所有值相加,则总和为 14。
  • 如果我们将除 2 之外的所有值相加,则总和为 13。
  • 如果我们将除 3 之外的所有值相加,则总和为 12。
  • 如果我们将除 4 之外的所有值相加,则总和为 11。
  • 如果我们将除 5 之外的所有值相加,则总和为 10。

我的方法和想法:

我以为我已经有一个 int [] arr ,所以我将使其进行流式传输,现在我将 filter将每个元素一一取出 sum在每次迭代中休息并将其添加到列表 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());

关于java - 使用filter()将元素一一过滤掉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com