将 int 数组插入到 ArrayList

Bla*_*ack 2 java arrays arraylist

我可以将数组插入数组并随后在 Java 中读取它吗?像这样的东西:

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

大批:

{ [1,4,5], [3,7,2] }
Run Code Online (Sandbox Code Playgroud)

并阅读如下:

print(array[0][1]); //prints 4 
Run Code Online (Sandbox Code Playgroud)

谢谢。

And*_*lko 5

您可以编写ArrayList<int[]>和传递像.add(new int[]{...}).

例如,

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

要打印出值,您应该int[]首先通过以下方式获取一个数组get(int index),然后通过以下方式从该数组中获取一个值[index]

System.out.print(list.get(0)[0]); // prints 1
Run Code Online (Sandbox Code Playgroud)

关于评论中的混乱。

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

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

  • @Berdesdan 我认为您混淆了术语。`int` 是原始类型,而不是原始类型。 (4认同)
  • @Berdesdan 甚至这是不正确的。菱形运算符 `&lt;&gt;` 在这里没问题。 (2认同)