填充2d数组

时间:2016-02-16 10:00:25

标签: java arrays for-loop multidimensional-array nested-loops

好吧,这可能是一个非常简单的解决方案,但我似乎无法找到它。我有两个ArrayLists:

ArrayList<Candidate>partyList and ArrayList<Party>electoralList 

现在我想创建一个代表派对和候选人的2d int数组:

p c
1 1
1 2
1 3
2 1
2 2
3 1
3 2
3 3 
etc.

我想我已经有了正确的循环来填充数组,但我只是错过了正确的公式来实现它。

int[][]ArrList;
for (int i=0; i<parties.size(); i++){ 
        for(int j=0; j<parties.get(i).getPartyList().size(); j++){
            ArrList[i][j]=

for-loop确实是正确的吗?然后填充数组的公式是什么?

3 个答案:

答案 0 :(得分:0)

首先,ArrList不应该有一个起始大写字母(它不是一个类而是一个对象)。

第二点(我觉得麻烦你)是你没有初始化矩阵而且parties.size()总是0.我不确定,因为没有足够的代码。 你可以做这样的事情

    int ROWS = 10;
    int COLS = 2;
    int [][] matrix = new int[ROWS][];
    for(int i=0; i< matrix.length; i++){
        matrix[i] = new int[COLS];
    }

或,使用列表

    int ROWS = 10;
    int COLS = 2;
    List<List<Object>> matrix = new ArrayList<>(ROWS);
    for (int i = 0; i < ROWS; i++) {
        ArrayList<Object> row = new ArrayList<>(COLS);
        for (int j = 0; j < COLS; j++) {
            row.add(new Object());
        }
        matrix.add(row);
    }

答案 1 :(得分:0)

我会尝试回答我如何理解你在这里寻找的问题。

  • 您应该先了解这一点:
  • 2D阵列由嵌套阵列组成,即 ArrList [2] [3] = [[1,2,3],[1,2,3]] - >第一个数字声明多少个数组作为元素,第二个数字声明大小或如果你愿意:长度,数组元素

  • 如果您希望将候选人和政党代表为数字。这是我的解决方案:

    int[][]ArrList = new int[parties.size()][electoral.size()]
    for (int depth=0; depth < parties.size(); depth++){ 
        for(int itemIndex=0; itemIndex<parties.get(depth).getPartyList().size(); itemIndex++){
            ArrList[depth][itemIndex]= itemIndex;
    

我希望这就是你要找的东西。

答案 2 :(得分:0)

int[][] arrList=new int[parties.size()][2];
    int i=0,j=0,k=0;
    for(;i<parties.size();i++,j++){
        if(j==1){
            arrList[k][j]=electoralList .get(--i);
            j=-1;
            k++;
        }
        else{
            arrList[k][j]=parties.get(i);
        }
    }
    arrList[k][j]=aarM.get(electoralList .size()-1);
System.out.println(Arrays.deepToString(arrList));