如何创建一个包含1000个随机生成整数的数组?

3

我需要创建一个包含1000个整数的数组,并编写一个方法来找到最大整数并将其打印。这是我目前的代码:

public static int findLargest(int[] numbers){  
    int largest = numbers[0];  
    for(int i = 1; i < numbers.length; i++){  
        if(numbers[i] > largest){  
            largest = numbers[i];  
        }  
    }  
    return largest;
}

首先,我该如何创建一个包含1000个随机生成的整数的数组?我尝试了int[] array = new (int)(Math.random());,但是我不知道如何生成1000个随机数字。其次,我如何打印结果?感谢任何帮助。

7个回答

5
int n[] = {1,5,7,3};
    for(int i=0;i<n.length;i++){
        if(n[i] > n[0]){
        n[0] = n[i];
        }
    }
    System.out.println(n[0]);

感谢您提供一个简单而好用的解决方案。 - cokedude

5
通过直观浏览,您的 findLargest 方法看起来不错——它使用了正确的方法。
要生成一个包含1000个数字的列表,您需要将数组初始化为1000个元素。目前,您正在将其初始化为具有随机数量元素的数组,这并不是您想要的。初始化数字为长度为1000的 int[] 后,您需要循环遍历数组并放入一个随机数。可以尝试像下面这样做:
int [] numbers = new int[1000]; // generate a new int[]

for (i = 0; i < number.length; i++) {
  numbers[i] = xxxx; // generate a random number
}

你应该创建某种init方法来为你创建原始数组。你会在主方法中调用它,获取对数组的引用,然后将该数组传递给你的查找方法,然后打印结果。

你就快到达目标了。


返回语句没问题,只是缩进有误。 - Brendan Long
请注意,我的for循环中的i前面没有int。 - hvgotcodes
是的,我注意到了,在添加它之前会出现错误。我的循环现在看起来像这样: public static void main(String[] args) { int [] numbers = new int[1000]; for (int i = 0; i < numbers.length; i++) { numbers[i] = (int)(Math.random()*100);
} System.out.println(findLargest(numbers)); }}
- Bryan
@hvgotcodes。同意,很难知道在这些问题上回答多少。 - user949300
抱歉代码有些混乱。事实证明,Greg是正确的,我忘记了数组中有多少个数字。今天真的很长。感谢大家的帮助! - Bryan
显示剩余3条评论

1
另一种找到最大的int的方法是使用java.util.Arrays.sort(int[]),然后打印数组的最后一个元素。

1
int[] randArray = new int[1000];
for(int i = 0; i < 1000; i++){
    randArray[i] = (int)(Math.random()*1000);
}
System.out.println(findLargest(randArray));

1
你回答的时间比第二个回答晚了10分钟,并且你的回答没有添加任何独特的内容。你应该删除这个回答。 - hvgotcodes

0
你可以使用Java的Random类来生成随机整数。然后只需用随机整数填充数组并调用你的方法,将数组作为参数传递给它即可。
// Random number generator
Random r = new Random();

// Create array of 1000 ints
int[] intArr = new int[1000];

// Fill array with random ints
for ( int i = 0; i < intArr.length; i++ ) {
    intArr[i] = r.nextInt();
}

// Print result
System.out.println( findLargest( intArr ) );

你应该留下一些实际的任务给学生去完成。 - hvgotcodes

0
这个程序: -使用ArrayList来存储数字 -使用Collections来排序数字 -使用for循环遍历ArrayList并使用Math.Random()填充随机数字。 -打印ArrayList中最大的数字。 希望它回答了你的问题。 请给我们反馈。
import java.util.ArrayList;
import java.util.Collections;

public class prac
{
    public static void main(String args[])
    {
        ArrayList<Double> MyArrayList=new ArrayList<Double>();


        for(int i=0;i<100;i++)
        {               
            MyArrayList.add(Math.random());
        }

        Collections.sort(MyArrayList);


        for(int j=0;j<MyArrayList.size();j++)
        {
            System.out.println(MyArrayList.get(j));
        }

        System.out.println("The largest Number is:");
        System.out.println(MyArrayList.get(-1+MyArrayList.size()));

    }

}


如果仅处理double数据类型的话,就无需使用ArrayList。使用基本数据类型double可以获得更好的性能。不要忘记java.util.Arrays.sort()函数。 - Chris Beach

0

我实际上有一个预先制作的类,用于查找任何一组值中最大的整数。您可以将此类放入您的项目中,并在任何类中像这样简单地使用它:

     System.out.println(figures.getLargest(8,6,12,9,120));

这将返回值“120”并将其放置在输出中。如果您有兴趣使用它,这是该方法的源代码: public class figures {
public static int getLargest(int...f) {
    int[] score = new int[f.length];
    int largest=0;
    for(int x=0;x<f.length;x++) {
        for(int z=0;z<f.length;z++) {
            if(f[x]>=f[z]) {
                score[x]++;
            }else if(f[x]<f[z]) {

            }else {
                continue;
            }
            if(z>=f.length) {
                z=0;
                break;
            }
        }
    }
    for(int fg=0;fg<f.length;fg++) {
        if(score[fg]==f.length) {
            largest = f[fg];
        }
    }
    return largest;
}

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接