有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否可以使用IntStream向数组添加元素?

我在cpp中使用了这个宏

forn(i,3) cin>>arr[n]; //assume arr initialised earlier

So I was tried to achieve this in Java using lambda and IntStream

  Scanner sc = new Scanner(System.in);
  IntStream.range(0, 5).map(i->arr[i]).forEach(e->e=sc.nextInt());

但我知道流不会操纵底层数据结构。那么,我可以使用streams来实现这一点,还是必须创建自己的功能接口来实现这一点?多谢各位


共 (2) 个答案

  1. # 1 楼答案

    在映射作为输入提供的整数时,您似乎正在寻找toArrayIntStream的用法:

    int arr[] = IntStream.range(0, 5).map(i -> sc.nextInt()).toArray()
    
  2. # 2 楼答案

    只需将代码更改为

    Scanner sc = new Scanner(System.in);
    IntStream.range(0, 5).forEach(i -> arr[i] = sc.nextInt());
    

    但也要注意,对于流来说,这不是一个很好的用例。一个简单的循环可能更合适