2014-05-09 67 views
0

嗨,我已經試圖做的幾乎是創建一個方法,它傳遞一個Integer數組列表並返回一個int數組的ArrayList。我希望返回的數組列表內的每個數組都包含傳入的數組列表的值。這裏是我迄今爲止在將數組添加到數組列表中初始化數組

public static ArrayList<int[]> createPossible(ArrayList<Integer> al) 
    { 
    ArrayList<int[]> returned = new ArrayList<int[]>(); 
    for(int i = 0; i < al.size(); i++) 
    { 
     returned.add(new int [1]{al.get(i)}); 
    } 
    return returned;  
    } 

我認爲,你可以看到我在這裏得到的基本點。只是不能找出如何正確初始化在那裏我將它添加到返回的ArrayList

+0

刪除''1' [1]'。無論如何,你想創建一個元素數組?感覺像[X Y問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Pshemo

+0

感謝您的評論,我閱讀了X Y的問題,並且我意識到我確實陷入了這個陷阱,未來我會發表更多適合的問題。 – user3622162

回答

0

內每一個新的數組只需使用

new int[] {al.get(i)} 

數組的長度是沒有用的,因爲你傳遞一個給定數量花括號內的值。

0

這將與您所描述的類似,但它使用List<Integer[]>而不是List<int[]>。如果您必須擁有List<int[]>,那麼它可以進行擴充以滿足您的需求。

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

public class StackOverflow { 
    public static List<Integer[]> createPossible(List<Integer> al) { 
     List<Integer[]> returned = new ArrayList<Integer[]>(); 
     for (int i = 0; i < al.size(); i++) { 
      returned.add(al.toArray(new Integer[0])); 
     } 
     return returned; 
    } 

    public static void main(String[] args) { 
     List<Integer> al = Arrays.asList(new Integer[] { 1, 2, 3, 4, 5 }); 
     List<Integer[]> result = createPossible(al); 

     System.out.println(Arrays.deepToString(result.toArray())); 
    } 
} 

上述代碼的輸出:從 [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]