如何以更“优雅”的方式重写这行代码?

时间:2015-01-06 00:32:20

标签: java for-loop int

所以我有这些代码行,我试图找到一种以更优雅的方式编写代码的方法:

         int randomHints1 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints2 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints3 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints4 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints5 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints6 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints7 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints8 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints9 = hintsRandom.nextInt(1200-100) + 100;
         int randomHints10 = hintsRandom.nextInt(1200-100) + 100;

我在猜测" for循环"方法就是答案,但我无法找到解决这个问题的方法。 非常感谢你们。

5 个答案:

答案 0 :(得分:6)

int[] randomHints = new int[10];
for(int i=0;i<randomHints.length;i++)
    randomHints[i] = hintsRandom.nextInt(1100) + 100;

答案 1 :(得分:1)

使用数组

int[] randomHints = new int[10];
for (int i = 0; i < randomHints.length; i++) {
    randomHints[i] = hintsRandom.nextInt(1200 - 100) + 100;
}

答案 2 :(得分:1)

如果您使用数组会更优雅:

int[] randomHints = new int[10];
...
for(int i = 0;i<randomHints.length;i++) {
    randomHints[i] = hintsRandom.nextInt(1200-100) + 100;
}

ps。:如果你需要动态数量的随机数,你可以使用arraylist

答案 3 :(得分:1)

我的答案基本上与其他人一样,使用数组和迭代,但我使用Java 8流将其写入一行。我觉得它更优雅。

int[] randomHints = new int[10];
Arrays.stream(randomHints).forEach(i -> randomHints[i] = hintsRandom.nextInt(1200 - 100) + 100);

答案 4 :(得分:0)

int[] randomHints = IntStream.generate(() -> 100 + hitsRandom.nextInt(1100)).limit(10).toArray();