Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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/8/sorting/2.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 如何使用“创建数组”;";随机整数?_Java_Arrays_Random_Arraylist_Integer_Java 8 - Fatal编程技术网

Java 如何使用“创建数组”;";随机整数?

Java 如何使用“创建数组”;";随机整数?,java,arrays,random,arraylist,integer,java-8,Java,Arrays,Random,Arraylist,Integer,Java 8,创建两个包含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 };

创建两个包含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 };
然后,您可以根据需要填充值

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>();
List integerList=new ArrayList();

您可以使用这样的扫描仪从用户处获取输入-

Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt(); 
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;
}  
现在创建一个函数
generateRandomArray(int n)
,如下所示-

Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt(); 
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;
}  

希望有帮助。

首先创建整数数组列表。然后,您可以添加任意数量的整数

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

我不会重复别人说过的话,因为这已经足够了,但是理解ArrayList和Arrays之间的区别可能会对您有所帮助


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

自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()));
//因为,根据您的问题,您正在使用数组,即使
//如果你说你想要ArrayList,我们假设你知道为什么
//这样做。
int[]a=新的int[x];
int[]b=新的int[x];
随机=新随机();
IntUnaryOperator unaryOpInt=(p)->random.nextInt(maxIntVal);
//用随机数填充数组a
数组.setAll(a,unaryOpInt);
//用随机数填充数组b
数组.setAll(b,unaryOpInt);
//因为,根据您的问题,您需要ArrayList,所以您可以
//从数组a和b创建ArrayList,如下所示。
//从数组a创建ArrayList
ArrayList aArrList=newarraylist(IntStream.of(a).boxed().collect(Collectors.toList());
//从数组b创建一个ArrayList
ArrayList=newArrayList(IntStream.of(b).boxed().collect(Collectors.toList());

话虽如此,我还是保持简单,使用一个循环来初始化为一个随机值,如果我需要ArrayList,我就不用使用数组,反之亦然。

为了完整性,因为您可以

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

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

  • 您可以使用(免责声明我是作者):

    MockNeat MockNeat=MockNeat.threadLocal();
    mockUnitIntUnit=mockNeat.ints().range(01100);
    int[]arr1=intUnit.arrayPrimitive(100.val();
    整数[]arr2=intUnit.array(100.val();
    List list1=intUnit.List(100.val();
    List list2=intUnit.List(100.List(100.val));
    

    该库可以很容易地描述生成任意数据的行为,然后重用该“行为”并使用它生成各种结构

    如果要从一个间隔生成随机整数数组,以下是选项

    // 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();
    
    首先,您要创建阵列。这些与ArrayList不同。所以你应该仔细阅读ArrayList。接下来,您应该阅读Java中的随机数。接下来,您应该阅读循环。可能重复的I将对这些数组中需要包含的内容进行澄清。@lacraig2他不清楚他想要什么,在他的代码中他有数组,并说他需要数组。要使用流从间隔创建随机整数数组,更好的选择是这样做,例如。这避免了为每个随机数创建一个新的
    Random
    实例,在我看来,这一点更清楚。
    // 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();