如何用 "n" 个随机整数创建一个数组?
How to create a array with "n" random integers?
创建两个 Integer
ArrayLists
,每个包含 n 个元素,其中 n 个将从用户那里获取。
所以基本上,如果用户输入“6”,则需要创建两个包含 6 个元素的数组。
我该怎么做?
这就是我所拥有的..但它甚至都不正确。
Scanner input= new Scanner(System.in);
System.out.println("please enter a integer 'n' ");
int x= input.nextInt();
int[] a = { 1, 4, 9, 16 };
int[] b = { 9, 7, 4, 9, 11 };
int x = input.nextInt();
int[] a = new int[x];
int[] b = new int[x];
然后您可以根据需要填充值
Scanner input= new Scanner(System.in);
System.out.println("please enter a integer 'n' ");
int x= input.nextInt();
int[] a = new int[x];
int[] b = new int[x];
这基本上是整数数组而不是数组列表
对于数组列表,您需要使用
创建它
List<Integer> integerList=new ArrayList<Integer>();
您可以使用像这样的扫描仪从用户那里获取输入 -
Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt();
现在像这样创建一个函数generateRandomArray(int n)
-
public List<Integer> generateRandomArray(int n){
ArrayList<Integer> list = new ArrayList<Integer>(n);
Random random = new Random();
for (int i = 0; i < n; i++)
{
list.add(random.nextInt(1000));
}
return list;
}
此处 - random.nextInt(1000)
将生成一个 0 到 1000 范围内的随机数。您可以根据需要确定范围。
现在您可以使用从用户那里获得的值 n
调用函数 -
ArrayList<Integer> list1 = generateRandomArray(n);
ArrayList<Integer> list2 = generateRandomArray(n);
希望对您有所帮助。
首先创建您的整数 ArrayList。然后你可以添加任意数量的整数。
ArrayList<Integer> ar = new ArrayList<Integer>();
ar.add(1);
我不会重复别人所说的,因为它已经足够了,但也许了解 ArrayLists 和 Arrays 之间的区别会对您有所帮助。
ArrayLists 动态增长,而 Arrays 具有固定大小。您可以按照其他人提供的优秀答案找到如何填充它们。
自 1.8
// Since, as per your question, you're using arrays even though
// you state you want ArrayLists, we will assume you know why you're
// doing so.
int[] a = new int[x];
int[] b = new int[x];
Random random = new Random();
IntUnaryOperator unaryOpInt = (p) -> random.nextInt(maxIntVal);
// populate array a with random numbers
Arrays.setAll(a, unaryOpInt);
// populate array b with random numbers
Arrays.setAll(b, unaryOpInt);
// Since, as per your question, you require ArrayLists, you can
// create ArrayLists from arrays a and b as follows.
// create an ArrayList from array a
ArrayList<Integer> aArrList = new ArrayList<>(IntStream.of(a).boxed().collect(Collectors.toList()));
// create an ArrayList from array b
ArrayList<Integer> bArrList = new ArrayList<>(IntStream.of(b).boxed().collect(Collectors.toList()));
话虽如此,我只是保持简单,使用循环初始化为随机值,如果我需要 ArrayLists,则不必使用数组,反之亦然。
为了完整起见,java-8 你可以
- 从随机数的下一个整数生成一个整数流
发电机作为供应商
()->r.nextInt()
- 将流限制为您想要的大小
将其转换为数组
int[] randomIntsArray=IntStream.generate(r::nextInt).limit(size).toArray()
你可以使用MockNeat(免责声明我是作者):
MockNeat mockNeat = MockNeat.threadLocal();
MockUnitInt intUnit = mockNeat.ints().range(0, 100);
int[] arr1 = intUnit.arrayPrimitive(100).val();
Integer[] arr2 = intUnit.array(100).val();
List<Integer> list1 = intUnit.list(100).val();
List<List<Integer>> list2 = intUnit.list(100).list(100).val();
库可以很容易地描述生成任意数据的行为,然后重用这个 "behavior" 并用它生成各种结构。
如果你想从一个区间生成随机整数数组,这里是选项
// generate 100 random number between 0 to 100
int[] randomIntsArray = IntStream.generate(() -> new Random().nextInt(100)).limit(100).toArray();
//generate 100 random number between 100 to 200
int[] randomIntsArray = IntStream.generate(() -> new Random().nextInt(100) + 100).limit(100).toArray();
你可以使用ThreadLocalRandom
int[] a = IntStream.range(0, n).map(i -> ThreadLocalRandom.current().nextInt()).toArray();
创建两个 Integer
ArrayLists
,每个包含 n 个元素,其中 n 个将从用户那里获取。
所以基本上,如果用户输入“6”,则需要创建两个包含 6 个元素的数组。 我该怎么做?
这就是我所拥有的..但它甚至都不正确。
Scanner input= new Scanner(System.in);
System.out.println("please enter a integer 'n' ");
int x= input.nextInt();
int[] a = { 1, 4, 9, 16 };
int[] b = { 9, 7, 4, 9, 11 };
int x = input.nextInt();
int[] a = new int[x];
int[] b = new int[x];
然后您可以根据需要填充值
Scanner input= new Scanner(System.in);
System.out.println("please enter a integer 'n' ");
int x= input.nextInt();
int[] a = new int[x];
int[] b = new int[x];
这基本上是整数数组而不是数组列表
对于数组列表,您需要使用
创建它 List<Integer> integerList=new ArrayList<Integer>();
您可以使用像这样的扫描仪从用户那里获取输入 -
Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt();
现在像这样创建一个函数generateRandomArray(int n)
-
public List<Integer> generateRandomArray(int n){
ArrayList<Integer> list = new ArrayList<Integer>(n);
Random random = new Random();
for (int i = 0; i < n; i++)
{
list.add(random.nextInt(1000));
}
return list;
}
此处 - random.nextInt(1000)
将生成一个 0 到 1000 范围内的随机数。您可以根据需要确定范围。
现在您可以使用从用户那里获得的值 n
调用函数 -
ArrayList<Integer> list1 = generateRandomArray(n);
ArrayList<Integer> list2 = generateRandomArray(n);
希望对您有所帮助。
首先创建您的整数 ArrayList。然后你可以添加任意数量的整数。
ArrayList<Integer> ar = new ArrayList<Integer>();
ar.add(1);
我不会重复别人所说的,因为它已经足够了,但也许了解 ArrayLists 和 Arrays 之间的区别会对您有所帮助。
ArrayLists 动态增长,而 Arrays 具有固定大小。您可以按照其他人提供的优秀答案找到如何填充它们。
自 1.8
// Since, as per your question, you're using arrays even though
// you state you want ArrayLists, we will assume you know why you're
// doing so.
int[] a = new int[x];
int[] b = new int[x];
Random random = new Random();
IntUnaryOperator unaryOpInt = (p) -> random.nextInt(maxIntVal);
// populate array a with random numbers
Arrays.setAll(a, unaryOpInt);
// populate array b with random numbers
Arrays.setAll(b, unaryOpInt);
// Since, as per your question, you require ArrayLists, you can
// create ArrayLists from arrays a and b as follows.
// create an ArrayList from array a
ArrayList<Integer> aArrList = new ArrayList<>(IntStream.of(a).boxed().collect(Collectors.toList()));
// create an ArrayList from array b
ArrayList<Integer> bArrList = new ArrayList<>(IntStream.of(b).boxed().collect(Collectors.toList()));
话虽如此,我只是保持简单,使用循环初始化为随机值,如果我需要 ArrayLists,则不必使用数组,反之亦然。
为了完整起见,java-8 你可以
- 从随机数的下一个整数生成一个整数流
发电机作为供应商
()->r.nextInt()
- 将流限制为您想要的大小
将其转换为数组
int[] randomIntsArray=IntStream.generate(r::nextInt).limit(size).toArray()
你可以使用MockNeat(免责声明我是作者):
MockNeat mockNeat = MockNeat.threadLocal();
MockUnitInt intUnit = mockNeat.ints().range(0, 100);
int[] arr1 = intUnit.arrayPrimitive(100).val();
Integer[] arr2 = intUnit.array(100).val();
List<Integer> list1 = intUnit.list(100).val();
List<List<Integer>> list2 = intUnit.list(100).list(100).val();
库可以很容易地描述生成任意数据的行为,然后重用这个 "behavior" 并用它生成各种结构。
如果你想从一个区间生成随机整数数组,这里是选项
// generate 100 random number between 0 to 100
int[] randomIntsArray = IntStream.generate(() -> new Random().nextInt(100)).limit(100).toArray();
//generate 100 random number between 100 to 200
int[] randomIntsArray = IntStream.generate(() -> new Random().nextInt(100) + 100).limit(100).toArray();
你可以使用ThreadLocalRandom
int[] a = IntStream.range(0, n).map(i -> ThreadLocalRandom.current().nextInt()).toArray();