如何在java中创建数字范围为1-50的随机整数数组?
我是java新手,我有一个关于如何创建一个数字范围为1-50的随机数组方法的问题 我需要给他数组的大小,他应该根据我给他的大小创建一个数组,这个数组的元素从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
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,结构良好的答案吸引了对堆栈溢出的投票,结构良好的意思是要清楚地解释你的解决方案如何回答问题,你可以用文字、代码来解释,并在可能的情况下显示你的代码在问题的上下文中。而且,一旦确定问题,搜索堆栈溢出以查看问题以前是否已解决,然后链接到现有的解决方案总是一个好主意。这里的更多帮助很好,请告诉我如何对其排序?你是指对数组的元素进行排序吗?我已经完成了这是一个更新的要求。这很好,请告诉我如何排序?你的意思是排序数组的元素吗?我已经发布了一个更新的要求。