【问题标题】:How do I create an array with 1000 randomly generated ints?如何创建一个包含 1000 个随机生成的整数的数组?
【发布时间】:2023-04-11 04:02:01
【问题描述】:

我应该创建一个包含 1000 个 int 的数组并编写一个方法来找到最大的 int 然后打印它。这是我目前所拥有的:

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 个随机数。其次,如何打印结果?提前感谢您的帮助。

【问题讨论】:

    标签: java arrays int


    【解决方案1】:
    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]);
    

    【讨论】:

    • 感谢您提供了一个不错的简单解决方案。
    【解决方案2】:

    我实际上有一个预制类,我设置它来查找任何一组值中的最大整数。您可以将此类放入您的项目中,然后在任何类中简单地使用它,如下所示:

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

    这将返回值“120”并将其放在输出中。以下是方法源代码,如果您有兴趣使用它:

    公开课人物{

    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;
    }
    

    }

    【讨论】:

      【解决方案3】:

      这个程序: - 使用 Arraylist 存储数字 - 使用集合对数字进行排序 - 使用 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()));
      
          }
      

      }

      【讨论】:

      • 如果您只是处理双打,则无需使用 ArrayList。使用原始双精度可以获得更好的性能。不要忘记 java.util.Arrays.sort()
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:
        int[] randArray = new int[1000];
        for(int i = 0; i < 1000; i++){
            randArray[i] = (int)(Math.random()*1000);
        }
        System.out.println(findLargest(randArray));
        

        【讨论】:

        • 您在 第二个 答案发布后 10 分钟,并且您的答案没有添加任何独特的东西。你应该删除它。
        【解决方案6】:

        目不转睛,您的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 方法来为您创建原始数组。您可以在 main 中调用它,获取对数组的引用,然后将该数组传递给您的 find 方法,然后打印结果。

        你快到了。

        【讨论】:

        • return 语句很好,只是缩进很糟糕。
        • @user949300 是的,我把它留给学生自己弄清楚。
        • 我交换了 (int)(Math.random()*100);对于“XXXX”,但它总是打印出 99。我做错了什么?
        • 请注意,我在 for 循环中的 i 前面没有 int
        • @user1157541:也许 99 是随机生成的从 0 到 99 的 1000 个数字数组中的最大值。
        【解决方案7】:

        您可以使用 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 ) );
        

        【讨论】:

        • 你应该给学生留一些实际去做的事情。
        猜你喜欢
        • 2015-05-12
        • 2013-01-03
        • 2013-11-06
        • 2011-08-06
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        相关资源
        最近更新 更多