我想拥有一个包含整数数组的集合。
List<int[]> pairs = new ArrayList<>();
为了添加一个元素我必须:
int[] newArray = {1, 2};
pairs.add(newArray);
有人可以解释为什么以下不起作用:
pairs.add({1,2});
有没有其他方法可以在不创建newArray对象的情况下将{1,2}添加到对中?
答案 0 :(得分:4)
大多数情况下,您需要执行new int[] { 1, 2 }
:
pairs.add( new int[] {1,2} );
您可以避免使用new int[]
的唯一地方是当您声明int[]
类型的变量时,就像您使用int[] newArray = {1, 2};
一样。这只是语言设计的一个限制。特别是,您可以在规范中阅读10.6. Array Initializers,其中指出:
可以在声明中指定数组初始值设定项(§8.3,§9.3, §14.4),或作为数组创建表达式(第15.10节)的一部分来创建 一个数组并提供一些初始值。
重要的是,{ 1, 2 }
是一个数组初始值设定项,您可以在声明(int[] newArray = {1, 2};
)或数组创建表达式({{1)中使用它}});你不能单独使用它。
答案 1 :(得分:1)
你的语法有点不对
试试这个:pairs.add(new int[]{1,2});