2016-02-16 225 views
0

好吧,這可能是一個非常簡單的解決方案,但我似乎無法找到它。我有兩個的ArrayList:填充2D陣列

ArrayList<Candidate>partyList and ArrayList<Party>electoralList 

現在我想讓表示政黨和候選人這樣一個二維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的確是正確的嗎?那麼填充數組的公式是什麼?

+2

我不太確定你的數據結構。什麼是「候選人」和什麼是「聚會」?這兩個列表如何以任何方式連接?你如何爲'派對'分配一個'候選人'? – Veluria

+0

第二維的大小應該是多少?有些團體有3名候選人和2名候選人。剩下的單元格應該是什麼? – user1803551

回答

0

我會盡量回答我如何瞭解你在找什麼這裏的問題。

  • 你應該明白該第一:
  • 二維陣列由一個坐落陣列即ArrList [2] [3] = [[1,2,3],[1,2, 3]] - >的第一個數字聲明多少陣列作爲元素,第二位數字聲明尺寸,或者如果你喜歡:長度,所述陣列元件

  • 如果你正在尋找代表理論值的e候選人和當事人作爲號碼。這裏是我的解決方案:

    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; 
    

我希望這是你所期待的。

+0

謝謝,這正是我正在尋找的! –

0

首先,ArrList不應該有一個起始大寫字母(它不是一個類,而是一個對象)。第二點(我認爲你有什麼麻煩)是你沒有初始化矩陣,而party.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); 
    } 
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));