在将数组添加到数组列表中初始化数组

时间:2014-05-09 23:09:07

标签: java arrays for-loop arraylist initialization

我非常想要做的就是创建一个传递整数数组列表并返回int数组的ArrayList的方法。我希望返回的Array List中的每个数组都包含传递的Array List的值。这是我到目前为止所拥有的

  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中的每个新数组

2 个答案:

答案 0 :(得分:0)

只需使用

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

数组的长度是无用的,因为你在花括号内传递给定数量的值。

答案 1 :(得分: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]]