如何使用" n"创建数组?随机整数?

时间:2015-03-10 17:57:30

标签: java arrays random arraylist integer

创建两个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 };

10 个答案:

答案 0 :(得分:5)

您可以使用此类扫描仪从用户那里获取输入信息 -

Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt(); 

之后,您可以调用来自用户的大小为generateRandomArray()的函数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范围内的随机数。您可以根据需要修改范围。

希望它会有所帮助 非常感谢。

答案 1 :(得分:5)

为了完整起见,你可以

  1. 从随机数生成下一个int的int流 发电机作为供应商()->r.nextInt()
  2. 将流限制为所需的大小
  3. 将其转换为数组

    int[] randomIntsArray=IntStream.generate(r::nextInt).limit(size).toArray()

答案 2 :(得分:5)

如果要从间隔生成随机整数数组,可以使用以下选项

// 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();

答案 3 :(得分:1)

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>();

答案 4 :(得分:0)

    int x = input.nextInt();

    int[] a = new int[x];
    int[] b = new int[x];

然后您可以根据需要填充值

答案 5 :(得分:0)

首先创建整数的ArrayList。然后你可以像你一样添加许多整数。

ArrayList<Integer> ar = new ArrayList<Integer>();
ar.add(1);

答案 6 :(得分:0)

我不会复制别人所说的内容,因为它已经足够了,但也许理解ArrayLists和Arrays之间的区别会让你受益。

ArrayList Documentation

Array Documentation

ArrayLists动态增长,而数组具有固定大小。您可以按照其他人提供的优秀答案找到如何填充它们。

答案 7 :(得分:0)

自1.8

#introParagraph

说完了,我只是保持简单,并使用循环初始化为随机值,并且如果我需要使用ArrayLists或vise,则不必使用数组反之亦然。

答案 8 :(得分:0)

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

库可以很容易地描述生成任意数据的行为,然后重用这个行为&#34;并用它生成各种结构。

答案 9 :(得分:0)

您可以使用 ThreadLocalRandom

int[] a = IntStream.range(0, n).map(i -> ThreadLocalRandom.current().nextInt()).toArray();