Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中创建数字范围为1-50的随机整数数组?_Java_Arrays_Random - Fatal编程技术网

如何在java中创建数字范围为1-50的随机整数数组?

如何在java中创建数字范围为1-50的随机整数数组?,java,arrays,random,Java,Arrays,Random,我是java新手,我有一个关于如何创建一个数字范围为1-50的随机数组方法的问题 我需要给他数组的大小,他应该根据我给他的大小创建一个数组,这个数组的元素从1到50 我尝试过这个代码,但它从来没有与我的工作 public class NewClass { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("Enter the n

我是java新手,我有一个关于如何创建一个数字范围为1-50的随机数组方法的问题

我需要给他数组的大小,他应该根据我给他的大小创建一个数组,这个数组的元素从1到50

我尝试过这个代码,但它从来没有与我的工作

public class NewClass {
     public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    System.out.print("Enter the number ");
    int r = input.nextInt();
    int[] list = new int[r];
    for (int i=0; i<10; i++){
        int n = (int)(Math.random()*50 + 1);
        list[i] = n;

        System.out.println(list[i] + " ");
    }

 }
公共类NewClass{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
系统输出打印(“输入号码”);
int r=input.nextInt();
int[]列表=新的int[r];
对于(int i=0;i请尝试以下方法:

Random rand = new Random();
int my_num = 1 + rand.nextInt(50);
试试这个:

Random rand = new Random();
int my_num = 1 + rand.nextInt(50);

您的for循环应该是

for(inti=0;i
您的for循环应该是

for(inti=0;i

因此我发现您的代码中存在两个问题:

  • 您没有关闭您的类。因此只需在代码后面附加一个
    }

  • 如果要填充整个数组,而不仅仅是前10个元素,请将for循环条件更改为
    i,因此我在代码中看到两个问题:

  • 您没有关闭您的类。因此只需在代码后面附加一个
    }

  • 如果您想填充整个数组,而不仅仅是前10个元素,则应将for循环条件更改为
    i,您应创建方法,以模块化的方式完成此操作。您可以做的其他改进是使用
    Random::nextInt
    来摆脱乘法和强制转换。下面给出了一个示例程序:

    import java.util.Random;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the size of the array: ");
            int r = input.nextInt();
            int[] list = new int[r];
            init(list);
            print(list);
        }
    
        static void init(int list[]) {
            Random random = new Random();
            for (int i = 0; i < list.length; i++) {
                list[i] = random.nextInt(50) + 1;
            }
        }
    
        static void print(int list[]) {
            for (int i : list) {
                System.out.print(i + " ");
            }
        }
    }
    
    [更新]发布以下代码,以满足OP对元素进行排序的要求(在下面的评论中提到):

    import java.util.Arrays;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the size of the array: ");
            int r = input.nextInt();
            int[] list = new int[r];
            init(list);
            System.out.println("Original list:");
            print(list);
            System.out.println("\nSorted list:");
            Arrays.sort(list);
            print(list);
    
        }
    
        static void init(int list[]) {
            Random random = new Random();
            for (int i = 0; i < list.length; i++) {
                int n = (int) (Math.random() * 50 + 1);
                list[i] = random.nextInt(50) + 1;
            }
        }
    
        static void print(int list[]) {
            for (int i : list) {
                System.out.print(i + " ");
            }
        }
    }
    

    您应该创建方法,以模块化的方式执行此操作。您可以做的其他改进是使用
    Random::nextInt
    来摆脱乘法和强制转换。下面是一个示例程序:

    import java.util.Random;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the size of the array: ");
            int r = input.nextInt();
            int[] list = new int[r];
            init(list);
            print(list);
        }
    
        static void init(int list[]) {
            Random random = new Random();
            for (int i = 0; i < list.length; i++) {
                list[i] = random.nextInt(50) + 1;
            }
        }
    
        static void print(int list[]) {
            for (int i : list) {
                System.out.print(i + " ");
            }
        }
    }
    
    [更新]发布以下代码,以满足OP对元素进行排序的要求(在下面的评论中提到):

    import java.util.Arrays;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the size of the array: ");
            int r = input.nextInt();
            int[] list = new int[r];
            init(list);
            System.out.println("Original list:");
            print(list);
            System.out.println("\nSorted list:");
            Arrays.sort(list);
            print(list);
    
        }
    
        static void init(int list[]) {
            Random random = new Random();
            for (int i = 0; i < list.length; i++) {
                int n = (int) (Math.random() * 50 + 1);
                list[i] = random.nextInt(50) + 1;
            }
        }
    
        static void print(int list[]) {
            for (int i : list) {
                System.out.print(i + " ");
            }
        }
    }
    

    这是一个我肯定会使用streams的地方。从Java8开始,streams就已经出现了,每个人都应该熟悉它。即使是那些不熟悉Java编码的人

            Random r = new Random();
            int nElements = 10;
            int maxElement = 50;
            List<Integer> nums = r.ints(nElements, 1, maxElement+1).boxed().sorted()
                .collect(Collectors.toList()); 
    
            System.out.println(nums);
    
    Random r=new Random();
    内部元素=10;
    int maxElement=50;
    List nums=r.ints(neelements,1,maxElement+1).boxed().sorted()
    .collect(Collectors.toList());
    系统输出打印项次(nums);
    
    这是解释

    • r.ints
      的第一个元素是数量。接下来的两个元素是
      开始
      结束
      范围。由于范围是独占的,因此必须添加1以包括
      最大元素
    • Boxed()将整数映射到要收集到列表中的整数对象
    • Sorted()实现了您所期望的功能
    • 收集器将它们放入
      列表中

    这是一个我肯定会使用streams的地方。它们从Java 8开始就存在了,每个人都应该熟悉它们。即使是那些不熟悉Java编码的人

            Random r = new Random();
            int nElements = 10;
            int maxElement = 50;
            List<Integer> nums = r.ints(nElements, 1, maxElement+1).boxed().sorted()
                .collect(Collectors.toList()); 
    
            System.out.println(nums);
    
    Random r=new Random();
    内部元素=10;
    int maxElement=50;
    List nums=r.ints(neelements,1,maxElement+1).boxed().sorted()
    .collect(Collectors.toList());
    系统输出打印项次(nums);
    
    这是解释

    • r.ints
      的第一个元素是数量。接下来的两个元素是
      开始
      结束
      范围。由于范围是独占的,因此必须添加1以包括
      最大元素
    • Boxed()将整数映射到要收集到列表中的整数对象
    • Sorted()实现了您所期望的功能
    • 收集器将它们放入
      列表中

    什么是预期输出<代码>我尝试了这个代码,但它从来没有对我起作用
    -什么对你不起作用?这回答了你的问题吗?什么是预期输出<代码>我尝试了这个代码,但它从来没有对我起作用
  • -什么对你不起作用?这回答了你的问题吗?这比
    (int)更好吗(Math.random()*50+1)
    这已经在原始海报的代码中了?你的答案中有什么文字解释?我把它放在哪里了?嗨,Xalva,结构良好的答案吸引了对堆栈溢出的投票,结构良好的意思是要清楚地解释你的解决方案如何回答问题,你可以用文字、代码来解释,并在可能的情况下显示在问题的上下文中搜索您的代码。此外,一旦确定问题,搜索堆栈溢出以查看问题以前是否已解决,然后链接到现有的解决方案,这始终是一个好主意。这里有更多帮助,这比
    (int)(Math.random()*50+1)有什么好处
    这已经在原始海报的代码中了?你的答案中有什么文字解释?我把它放在哪里了?嗨,Xalva,结构良好的答案吸引了对堆栈溢出的投票,结构良好的意思是要清楚地解释你的解决方案如何回答问题,你可以用文字、代码来解释,并在可能的情况下显示你的代码在问题的上下文中。而且,一旦确定问题,搜索堆栈溢出以查看问题以前是否已解决,然后链接到现有的解决方案总是一个好主意。这里的更多帮助很好,请告诉我如何对其排序?你是指对数组的元素进行排序吗?我已经完成了这是一个更新的要求。这很好,请告诉我如何排序?你的意思是排序数组的元素吗?我已经发布了一个更新的要求。