java - 集合中的整数数组

标签 java arrays collections

我想要一个包含整数数组的集合。

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

为了添加一个元素,我必须:

int[] newArray = {1, 2};
pairs.add(newArray);

有人可以解释一下为什么以下不起作用:

 pairs.add({1,2});

是否有其他方法可以将 {1,2} 添加到对而不创建 newArray 对象?

最佳答案

大多数时候,您需要执行 new int[] { 1, 2 } :

pairs.add( new int[] {1,2} );

唯一可以避免 new int[] 的地方是当你声明 int[] 类型的变量时,就像您对 int[] newArray = {1, 2}; 所做的那样。这只是语言设计的限制。特别是,您可以阅读10.6. Array Initializers在规范中,其中指出:

An array initializer may be specified in a declaration (§8.3, §9.3, §14.4), or as part of an array creation expression (§15.10), to create an array and provide some initial values.

重要的是 { 1, 2 } , 是一个数组初始值设定项,您可以在声明 ( int[] newArray = {1, 2}; ) 或数组创建表达式 ( new int[] { 1, 2 } ) 中使用它;你不能单独使用它。

关于java - 集合中的整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755400/

相关文章:

java - 在 for 循环中禁用 JPanel 上的 JComponent : annoying delay

java - Java中重复数据的计数器

arrays - 跳过 “for each”循环中的第一个元素?

python - 如何在 numpy 中将一个数组除以另一个数组元素?

java - 使用 Java 连接到 MongoDB 服务器实例期间的身份验证

java - 几个sql请求检索数据(hibernate)

c - 动态分配结构体数组C编程

java - 如何在 HashMap/HashSet 中存储两个相等的字符串或任何对象(具有不同的引用)?

function - 设计师为什么要在clojure里做vector、map、set函数?

java - Hibernate PersistentList 和 ArrayList