基本算法\u biggiesize

yqyhoc1h  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(246)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
我正在尝试编写一个流函数,将数组中的所有正数都改为“big”。
例子: makeItBig([-1,3,5,-5]) 返回相同的数组,更改为 [-1,"big","big",-5] .
到目前为止,我的结论是:

public static Object[] makeItBig(Object[] arr){
    List <Object> array = arr.stream().filter(nb->nb>0).forEach(nb -> “big”);
    return array;
}

我打算使用map()i/o或foreach()的加法。。

vd8tlhqk

vd8tlhqk1#

这里有很多错误:
你不能打电话 .stream() 在数组中,需要使用
Arrays.stream(T[] array) .filter() 从流中删除值,因此结果中不会出现负数 .forEach() 不返回结果;就像一个 for (T x : as) 回路,你需要 .map() 用于返回修改后的值
你不能只把对象和 > :您需要向 int 第一
流不返回列表;你需要取钱或者打电话 .toArray() 我建议您阅读您希望使用的每个函数的文档(搜索“java8functionname”很好),阅读您得到的错误消息,并理解您正在使用的不同类型;你应该能够用这种方法解决你遇到的大多数问题。
总之,修改它就变成了以下代码:

import java.util.Arrays;
import java.util.List;

class MakeItBig {
  public static void main(String[] args) {
    Object[] bigged = makeItBig(new Object[] { -1, 3, 5, -5 });
    for (Object o : bigged) {
      System.out.println(o);
    }
  }

  public static Object[] makeItBig(Object[] arr){
    return Arrays
      .stream(arr)
      .map(x -> ((int)x > 0) ? "big" : x)
      .toArray();
  }
}

相关问题