【问题标题】:How to generate auto int array from 0 to 99如何生成从 0 到 99 的自动 int 数组
【发布时间】:2017-07-21 12:13:09
【问题描述】:

有任何方法可以生成从 0 到 99 的自动 int 数组

示例:

int [] nums = new int[99];

我想要这样:

int [] Nums = new int[] {0,1,2,3,4... ,99};

提前致谢

【问题讨论】:

  • 坚持 Java 命名约定,所以它应该是nums(小写'n');-)

标签: java arrays automation integer


【解决方案1】:
 int [] nums = new int[99];
 for(int i = 0; i < nums.length; i++)
     nums[i] = i;

如果您使用的是 Java 8,其他方式:

  • 第一种技术

    int[] nums = IntStream.range(0, 99).toArray();

  • 第二个技巧

    int[] nums = new int[99]; Arrays.setAll(nums, i -> i + 1);

【讨论】:

  • 您的意思是i&lt;99i &lt; Nums.length,而不是i&lt; =99
  • 错误,java.lang.ArrayIndexOutOfBoundsException 和 &lt; = 无法编译:&lt;=
  • @AbdelilahElghazal 如果它帮助接受使用绿色勾号的答案。很高兴为您提供帮助
【解决方案2】:

结合Java 8 IntStream for an int range?How to Convert a Java 8 Stream to an Array?

IntStream.rangeClosed(0, 99).toArray(Integer[]::new);

【讨论】:

  • Integer 数组不是 int 数组。
  • @khelwood 我没有测试,但我认为这就是为什么有toArray...
  • OP 要求的是 int 数组,而不是 Integer 数组。 toArray(Integer[]::new) 甚至不会编译。它应该只是toArray()。见IntStream.toArray()
  • 现在我测试了,你是对的。但是Integer::new 在 Java 8 中可以吗?
  • 它似乎可以在某处工作,但Integer[] arr = Integer[]::new; 显示编译错误“此表达式的目标类型必须是函数接口”。
猜你喜欢
  • 2022-11-13
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 2014-03-01
  • 2014-11-04
  • 2015-12-22
相关资源
最近更新 更多