我如何创建一个包含int数组的数组?

时间:2014-04-02 22:43:14

标签: java arrays

所以我对Java编程很新,而且我正在使用netbeans。我的问题是我已经有5个数组,但是我想把它们的所有数据放到一个大数组中,以便以后在我的项目中更好地引用它。我已经研究了一些,但我很困惑,没有它适用于我的代码本身或更好的解释。我认为它有多个方括号,但我不确定如何做到这一点。

    int[] particle1;
    particle1 = new int[3];
    particle1[0] = 0;  //x
    particle1[1] = 0;  //y
    particle1[2] = 1;  //weight 

    int[] particle2;
    particle2 = new int[3];
    particle2[0] = 0;   //x
    particle2[1] = 2;   //y
    particle2[1] = 1;   //wieght 

    int[] particle3;
    particle3 = new int [3];
    particle3[0] = 0;
    particle3[1] = 4;
    particle3[2] = 1;


    String[]  allPos;
    allPos = new String[5];
    allPos[0] = particle1;
    allPos[1] = particle2;
    allPos[2] = particle3;

    System.out.println("The position of all of them  and there weight is: " + 
        java.util.Arrays.toString(allPos));
    System.out.println(" Hello World!");`

4 个答案:

答案 0 :(得分:2)

int[][] particles=new int[3][3];

particles[0][0]=0; //particle 1 x value
particles[0][1]=0; //particle 1 y value
particles[0][2]=1; //particle 1 weight value

particles[1][0]=0; //particle 2 x value
particles[1][1]=2; //particle 2 y value
particles[1][2]=1; //particle 2 weight value

particles[2][0]=0; //particle 3 x value
particles[2][1]=4; //particle 3 y values
particles[2][2]=1; //particle 3 weight value

答案 1 :(得分:1)

你需要的是一个双数组,例如:

int[][] particle = new int[][] {{0, 1, 1}, {1, 2, 3}, {1, 2, 3}};

答案 2 :(得分:1)

如果您正在寻找'多维'数组,可以这样设置:

int[][] allPos = new int[][5];
allPos[0] = particle1;
allPos[1] = particle2;
allPos[2] = particle3;

但是,如果您希望将5个数组“连接”为1个长数组,您可能需要查看以下问题:How can I concatenate two arrays in Java?

如果不引入库,您的代码可能如下所示:

int[] concat(int[] A, int[] B) {
   int aLen = A.length;
   int bLen = B.length;
   int[] C = new int[aLen+bLen];
   System.arraycopy(A, 0, C, 0, aLen);
   System.arraycopy(B, 0, C, aLen, bLen);
   return C;
}

然后

int[] allPos = concat(particle1, particle2);
allPos = concat(allPos, particle3);
//result = concat(allPos, particle4)

答案 3 :(得分:1)

这将是一个二维数组: int[][] particle = new int[3][3]; (其中第一个[]指向粒子,第二个[]指向其值)

示例:particle[0][2] = 1;(相当于particle1[2] = 1;