将int Array插入ArrayList

时间:2016-06-30 18:16:54

标签: java arrays arraylist

我可以将数组插入数组并在Java中读取吗?像这样:

ArrayList<Integer> array = new ArrayList<>();
array.add([1,4,5]);
array.add([3,7,2]);

数组:

{ [1,4,5], [3,7,2] }

读起来像:

print(array[0][1]); //prints 4 

感谢。

6 个答案:

答案 0 :(得分:4)

您可以撰写ArrayList<int[]>并传递.add(new int[]{...})等值。

例如,

List<int[]> list = new ArrayList<>();
list.add(new int[]{1, 2, 3});

要打印出值,您应该首先int[]获取get(int index)数组,然后通过[index]从此数组中获取值:

System.out.print(list.get(0)[0]); // prints 1

关于评论中的混乱。

  1. 此处没有原始类型。我没有在任何地方写ListList<Object>
  2. int[]是一个数组,因此它是一个引用类型,可以用作通用参数。
  3. int是一个原型,它不能与泛型一起使用/使用。考虑它的包装类 - Integer
  4. 我使用了上面的钻石<>。为什么?防止“样板代码”。
  5.   

    在Java SE 7及更高版本中,只要编译器可以确定或推断,就可以用一组空的类型参数(<>)替换调用泛型类的构造函数所需的类型参数。来自上下文的类型参数。这对尖括号<>被非正式地称为钻石   List<int[]> list = new ArrayList<>();
      List<int[]> list = new ArrayList<int[]>();等同于之前的

答案 1 :(得分:1)

您可以将整数数组添加到arraylist,但是必须将arraylist定义为:

List<int[]> list = new ArrayList<int[]>();

事实上,更通用的版本是

List<Object> list = new ArrayList<Object>();

array.add([1,4,5]); 正确实施

list.add(new int[]{1,4,5});

print(array[1][2]); 正确实施

System.out.println(((int [])list.get(1))[2]);

答案 2 :(得分:1)

以最少的代码行快速填充arrayList:

    Integer[] numArray = {1, 2, 3, 4, 5, 0, 9, 8, 7, 6};
    List<Integer> numList = new ArrayList<>(Arrays.asList(numArray));

答案 3 :(得分:0)

ArrayList是List类型。

如果你想创建2d数组(数组内的数组)

int[][] a = new int[][]{{1,4,5},{3,7,2}};
System.out.println(a[0][1]);

答案 4 :(得分:0)

您想使用ArrayLists的ArrayList

    ArrayList<ArrayList<Integer>> intArrays = new ArrayList<ArrayList<Integer>>();
    //rows
    for(int i =0;i<4;i++)
    {

        intArrays.add(new ArrayList<Integer>());
        //cols
        for(int j=0;j<4;j++)
        {
            intArrays.get(i).add(j);
        }
    }
    //rows
    for(int i =0;i<4;i++)
    {

        //cols
        for(int j=0;j<4;j++)
        {
            System.out.print(intArrays.get(i).get(j));
        }
        System.out.println();
    }

答案 5 :(得分:-1)

这已经过测试并且可以正常工作。

    int[] ar = {10, 20, 20, 10, 10, 30, 50, 10, 20};

    ArrayList<Integer> list = new ArrayList<>();

    for(int i:ar){
        list.add(new Integer(i));

    }
    System.out.println(list.toString());

    // prints : [10, 20, 20, 10, 10, 30, 50, 10, 20]