将随机值存储到数组中

时间:2014-12-11 17:45:42

标签: java arrays random

修订问题: 我希望我的数组的偶数元素存储在相应的数组中。我的if else语句就是这样做的。由于每次运行总会有不同数量的均值和赔率,我希望evenArrayoddArray的大小随着我的while循环的每次迭代进行调整。我在编译时遇到错误,说我没有正确地执行该部分。

import java.util.Arrays;
import java.util.Random; 
public class randomdemo { 
    public static int[] randommethod()
    {
        int i = 0;

        int[] myArray;
        myArray = new int[100];

        int[] evenArray;

        int[] oddArray;

        while(i<=99)
        {
            Random rand = new Random();
            int n = rand.nextInt(25) + 0;
            myArray[i] = n;

            if(myArray[i] % 2 == 0)
            {
                evenArray = new int[i];
                evenArray[i] = n;
            }
            else
            {
                oddArray = new int[i];
                oddArray[i] = n;
            }

            i++;
        }

        return myArray;
    }

    public static void main(String args[])
    {
        int[] result = randommethod();
        System.out.println(Arrays.toString(result));
        randommethod();
    }
}

5 个答案:

答案 0 :(得分:3)

存储结果,并打印出来。您可以使用循环或Arrays.toString(int[])。像,

int[] result = randommethod();
System.out.println(Arrays.toString(result));

当我将这两行放在main()中并使用您发布的randommethod()时,它似乎可以正常工作。

答案 1 :(得分:1)

未使用返回的数组。

所以从randommethod()返回的是int[]但主要方法不会打印它(或以任何方式使用它)。

以下是使用它的一种方法:

int[] outputRandomAry = randommethod();
for (int elem : outputRandomAry) {
  System.out.print(elem + ", ");
}
System.out.println();

此外,您可能希望将Random rand = new Random(); //using the random class放在while循环之外。这可以防止为每个兰特不必要地剥离新对象。

您可以将int n = rand.nextInt(26);用于0(含)到26(不包括),为您提供所需的范围。

答案 2 :(得分:0)

如果您只想打印阵列而不存储, 100%它会起作用。

System.out.println(Arrays.toString(randommethod()));  //print array

在这一行,您返回了vaule:

return myArray; //returns the array

但你没有将它存储。所以返回值丢失了。即使你完成了该方法的所有工作。

将您的返回数组存储在 main

中,如下所示
int[] myArray = randommethod();    //store returned value (from method)

之后,您可以使用返回的数组执行任何操作。

答案 3 :(得分:0)

除了其他用户提到的内容之外,如果我是你,我会用这种方式编写你的方法:

public static int[] randommethod()      //declaring method
{
    Random rnd = new Random();          //using the random class
    int[] myArray = new int[100];       //create and initializing array in 1 line

    for(int x=0; x<myArray.length; x++) //Normally use for-loop when you know how many times to iterate
        myArray[x] = rnd.nextInt(26);   //0-25 has 26 possibilities, so just write 26 here

    return myArray;                     //returns the array
}

它会做同样的事情,我正在用原始代码编辑它。

在主..

public static void main (String[] args)
{
    int[] myArray = randommethod();
}

答案 4 :(得分:0)

如果你想要一个0到25之间的随机int,那么你的代码应该是:

int n = rand.nextInt(26); //I want a random int between 0 and 25 inclusive