如何实现具有100个随机元素并对其进行排序的数组?

时间:2018-06-21 23:15:12

标签: java

import java.util.Random; 

class bubbleSort
{
void bubbleSort(int arr[]) 
{
int n = arr.length; 
   for(int i = 0; i < n; i++)
      for(int j = 0; j < n-1; j++)
         if(arr[j] > arr[j+1] )
            {
               int temp = arr[j];
               arr[j] = arr[j+1]; 
               arr[j+1] = temp;
            } 

}
void printArray(int arr[])
{
int n = arr.length; 
for(int i = 0; i < n; i++)
   System.out.print(arr[i] + " "); 
   System.out.println(); 
}



public static void main(String[] args) 
{
Random rand = new Random();
bubbleSort ob = new bubbleSort(); 
arr[100] = {rand.nextInt()}; 
ob.bubbleSort(arr); 
ob.printArray(arr); 
}
}

所以我的代码是bubbleSort的典型设置。现在,如您所见,我的数组已设置为100的特定大小,并且我打算将数组中的每个元素设为随机整数。问题是,我的数组实现不合法,我不确定如何使其合法。谁能帮助我?

3 个答案:

答案 0 :(得分:2)

arr[100] = {rand.nextInt()}; 

不是初始化100个随机元素数组的有效方法。相反,我建议创建一个包含100个元素的数组

arr int[] = new int[100];

然后使用for循环将每个元素初始化为随机整数

for(int i = 0; i < 100; i++){
    arr[i] = rand.nextInt(100) + 1; //Will generate a number from 1 to 100 inclusive
}

答案 1 :(得分:1)

对于初学者,您没有声明数组。您只是在不告诉编译器什么是arr的情况下开始使用arr。您也不能使用大括号中的方法调用来初始化数组,并期望它找出可以调用该方法100次的数组。

一种简单的方法(即不使用流和lambda)是使用new为数组分配内存,然后为其分配大小。然后,您将循环遍历数组,每个值调用一次nextInt()。

int[] test = new int[100];
Random rand = new Random();
for(int value = 0; value < 100; value++) {
    test[value] = rand.nextInt();
}

答案 2 :(得分:0)

由于代码生成 1 ,因此可以在声明数组时分配元素:

int[] arr = { rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(),
        rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt(), rand.nextInt()};

那里有。

1 Stream.generate(() -> "rand.nextInt()").limit(100).collect(Collectors.joining(", "));,然后让IDE格式化输出:)