我无法在我的测试类中将随机数放入数组中。代码在java中。我无法单独完成,因为最终我必须使用多达600个值来填充数组。这是测试类:
import java.util.Random;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
int size = 1000;
int max = 5000;
int[] array = new int[size];
int loop = 0;
Random generator = new Random();
//Write a loop that generates 1000 integers and
//store them in the array using generator.nextInt(max)
generator.nextInt(max); //generating one
//I need to generate 1000
//So I need some kind of loop that will generate 1000 numbers.
for (int i =0; i<1000; i++)
{
generator.nextInt(max);
}
/**
* After I do this, I'll have the array, array.
* Then comes what's under this.
* THat method is for measuring the time.
* System.currentTimeMillis();,
* with this, I can collect a time for the start of the method
* and one for the end.
* Time at the end, minus the time at the start
* gets us the running time.
*/
long result;
long startTime = System.currentTimeMillis();
sort.quickSort(array, 100, array.length-1);
long endTime = System.currentTimeMillis();
result = endTime-startTime;
System.out.println("The quick sort runtime is " + result + " miliseconds");
long result2;
long startTime2 = System.currentTimeMillis();
sort.partition(array, 100, array.length-1);
long endTime2 = System.currentTimeMillis();
result2 = endTime2 - startTime2;
System.out.println("The partition runtime is "+result2 + " miliseconds");
long result3;
long startTime3 = System.currentTimeMillis();
sort.bubbleSort(array, 100);
long endTime3 = System.currentTimeMillis();
result3 = endTime3-startTime3;
System.out.println("The bubble sort runtime is "+result3 + " miliseconds");
long result4;
long startTime4 = System.currentTimeMillis();
sort.selectionSort(array, 100); //change the second number to change
//the size of an array.
long endTime4 = System.currentTimeMillis();
result4 = endTime4-startTime4;
System.out.println("The selection sort runtime is "+result4 + " miliseconds");
}
}
我已经完成了测试类和它调用函数的另一个类,并且没有错误。我只需要以某种方式将随机值放入数组中。任何建议将不胜感激。
如果您查看代码,您可以看到我已经创建了一个小函数来自己生成数字。我只是不知道如何做到这一点,以便数字将进入数组。
答案 0 :(得分:8)
您只需要更改循环内的行,将随机数分配给数组的当前索引。
array[i] = generator.nextInt(max);
查看Arrays教程线程,了解有关创建,初始化和访问数组的所有信息。
顺便说一下,您的循环条件可能不应重复1000
,而应重复size
。
for (int i = 0; i < size; i++)
答案 1 :(得分:0)
自1.8
Arrays.setAll(array, i -> {
return generator.nextInt(max);
});
这会使用0(含)和max
之间的随机数填充数组。(/ p>
进一步阅读:The Arrays Class和The IntUnaryOperator Interface
说完了,我更喜欢使用比尔蜥蜴提供的方法,使用循环来初始化每个值。