Java 是否有更短的代码或更简单的方法将元素添加到不同大小的多个数组中?

Java 是否有更短的代码或更简单的方法将元素添加到不同大小的多个数组中?,java,arrays,2d,Java,Arrays,2d,这是我试图随机添加元素的代码。 是否有一种方法可以使用while循环、for循环或Java中的每个循环添加元素 package arrays_into_2d_array; import java.util.*; public class Arrays2DArray { /** * @param args the command line arguments */ public static void main(String[] args) {

这是我试图随机添加元素的代码。 是否有一种方法可以使用
while
循环、
for
循环或Java中的每个循环添加元素

package arrays_into_2d_array;

import java.util.*;

public class Arrays2DArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

    Random random = new Random();

    int [] arr1 = new int[50];
    for(int i = 0; i < arr1.length; i++){
        arr1[i] = 1+random.nextInt(5);
    }
    int [] arr2 = new int[100];
        for(int i = 0; i < arr2.length; i++){
        arr2[i] = 1+random.nextInt(5);
    }
    int [] arr3 = new int[200];
        for(int i = 0; i < arr3.length; i++){
        arr3[i] = 1+random.nextInt(5);
    }
    int [] arr4 = new int[400];
        for(int i = 0; i < arr4.length; i++){
        arr4[i] = 1+random.nextInt(5);
    }
    int [] arr5 = new int[800];
        for(int i = 0; i < arr5.length; i++){
        arr5[i] = 1+random.nextInt(5);
    }
    int [] arr6 = new int[1600];
        for(int i = 0; i < arr6.length; i++){
        arr6[i] = 1+random.nextInt(5);
    }
    int [] arr7 = new int[3200];
        for(int i = 0; i < arr7.length; i++){
        arr7[i] = 1+random.nextInt(5);
    }
    int [] arr8 = new int[6400];
        for(int i = 0; i < arr8.length; i++){
        arr8[i] = 1+random.nextInt(5);
    }
    int [] arr9 = new int[12800];
        for(int i = 0; i < arr9.length; i++){
        arr9[i] = 1+random.nextInt(5);
    }
    int [] arr10 = new int[25600];
        for(int i = 0; i < arr10.length; i++){
        arr10[i] = 1+random.nextInt(5);
    }


    int [][] arr2D = {arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10};

    for(int i = 0; i < arr2D.length; i++){
        System.out.println("Index = "+i+" of 2D array has = "+arr2D[i].length+" number of elements.");
    }

    }

}
将数组_打包成二维数组;
导入java.util.*;
公共类Arrays2DArray{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
随机=新随机();
int[]arr1=新int[50];
for(int i=0;i

任何帮助都将不胜感激

您编写了太多几乎相同的代码,所以应该使用循环

package arrays_into_2d_array;

import java.util.*;

public class Arrays2DArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Random random = new Random();
        int [] sizes = {50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600};
        int [][] arr2D = new int[sizes.length][];
        for(int i = 0; i < arr2D.length; i++){
            arr2D[i] = new int[sizes[i]];
            for(int j = 0; j < arr2D[i].length; j++){
                arr2D[i][j] = 1+random.nextInt(5);
            }
        }

        for(int i = 0; i < arr2D.length; i++){
            System.out.println("Index = "+i+" of 2D array has = "+arr2D[i].length+" number of elements.");
        }

    }

}
将数组_打包成二维数组;
导入java.util.*;
公共类Arrays2DArray{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
随机=新随机();
int[]大小={50,100,200,400,800,1600,3200,6400,12800,25600};
int[][]arr2D=新的int[size.length][];
对于(int i=0;i
您编写了太多几乎相同的代码,因此应该使用循环

package arrays_into_2d_array;

import java.util.*;

public class Arrays2DArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Random random = new Random();
        int [] sizes = {50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600};
        int [][] arr2D = new int[sizes.length][];
        for(int i = 0; i < arr2D.length; i++){
            arr2D[i] = new int[sizes[i]];
            for(int j = 0; j < arr2D[i].length; j++){
                arr2D[i][j] = 1+random.nextInt(5);
            }
        }

        for(int i = 0; i < arr2D.length; i++){
            System.out.println("Index = "+i+" of 2D array has = "+arr2D[i].length+" number of elements.");
        }

    }

}
将数组_打包成二维数组;
导入java.util.*;
公共类Arrays2DArray{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
随机=新随机();
int[]大小={50,100,200,400,800,1600,3200,6400,12800,25600};
int[][]arr2D=新的int[size.length][];
对于(int i=0;i当然可以。你要找的是一种方法

您将声明一个方法,该方法接受
int[]
Random
实例,并执行循环:

public static void assignRandomValues(int[] array, Random random)
{
    for (int i = 0; i < array.length; i++)
    {
        array[i] = 1 + random.nextInt(5);
    }
}

…等等。

当然。你要找的是一种方法

您将声明一个方法,该方法接受
int[]
Random
实例,并执行循环:

public static void assignRandomValues(int[] array, Random random)
{
    for (int i = 0; i < array.length; i++)
    {
        array[i] = 1 + random.nextInt(5);
    }
}

…等等。

不完全是一个循环,但是使用流API的java 8版本非常简短:

int[][] arr2D = IntStream.range(0, 10).map(i -> 50 << i) // stream of sizes
                         .mapToObj(size -> IntStream.generate(() -> random.nextInt(5) + 1).limit(size).toArray()) // stream of arrays with given sizes
                         .toArray(int[][]::new); // combine arrays
int[][]arr2D=IntStream.range(0,10).map(i->50 IntStream.generate(()->random.nextInt(5)+1).limit(size.toArray())//具有给定大小的数组流
.toArray(int[]]::新);//组合阵列

不完全是一个循环,但是使用流API的java 8版本非常简短:

int[][] arr2D = IntStream.range(0, 10).map(i -> 50 << i) // stream of sizes
                         .mapToObj(size -> IntStream.generate(() -> random.nextInt(5) + 1).limit(size).toArray()) // stream of arrays with given sizes
                         .toArray(int[][]::new); // combine arrays
int[][]arr2D=IntStream.range(0,10).map(i->50 IntStream.generate(()->random.nextInt(5)+1).limit(size.toArray())//具有给定大小的数组流
.toArray(int[]]::新);//组合阵列

尺寸计算表达式应为
50;尺寸计算表达式应为
50