Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法将匿名数组插入到集合中?_Java_Arrays_Collections_Anonymous - Fatal编程技术网

Java 有没有办法将匿名数组插入到集合中?

Java 有没有办法将匿名数组插入到集合中?,java,arrays,collections,anonymous,Java,Arrays,Collections,Anonymous,我在这里找到了很多这样的条目 someFunc(new int[]{1,2,3}); 用于调用方法并在for/each循环中使用 //====== 分配到集合中如何 我试过这个: ArrayList<int[]> data = new ArrayList<int[]>(); data.add(new int[]{21, 19629}); ArrayList data=new ArrayList(); 添加(新的int[]{2119629}); 我得到了“预期标识符”

我在这里找到了很多这样的条目

someFunc(new int[]{1,2,3});
用于调用方法并在for/each循环中使用

//======

分配到集合中如何

我试过这个:

ArrayList<int[]> data = new ArrayList<int[]>();
data.add(new int[]{21, 19629});
ArrayList data=new ArrayList();
添加(新的int[]{2119629});
我得到了“预期标识符”和“类型的非法开始”


我能做些什么来实现这一点吗?

您已经列出了阵列列表。这真的是你想要的吗,还是你想问一些类似的问题

ArrayList<Integer> data = new ArrayList<Integer>();
data.add(new int[]{1,2,3});
ArrayList data=new ArrayList();
添加(新的int[{1,2,3});
?


在任何情况下,都要熟悉
数组
集合
类——它们包含许多实用程序,在这种情况下非常方便。

从数组中创建列表的最简单方法:

List<String> myList = Arrays.asList("Hello", "There", "Foo", "Bar);
List myList=Arrays.asList(“Hello”、“There”、“Foo”、“Bar”);
注意:列表的大小是固定的,并且由输入数组支持,因此对列表的更改实际上会写入数组。添加或删除元素可能会导致不支持的操作异常。如果您想在数组中乱搞,例如添加或删除元素,则可能需要将元素复制到另一个列表中特别是谷歌收藏部分

几个集合类定义了一个静态方法(…),该方法将添加给定给该集合的所有对象

与静态导入相结合,这允许动态进行非常简洁的集合初始化

e、 g


将使用字符串列表调用someFunc。

事实上,如果您想要创建一个整数表列表,则此代码有效

public static void main(String[] args) {
    List<int[]> data = new ArrayList<int[]>();
    data.add(new int[]{21, 19629})
    for(int[] tab : data){//I loop each tab (only one here)
        for(int i: tab){//I loop each values
            System.out.println(i);
        }
    }

}
publicstaticvoidmain(字符串[]args){
列表数据=新的ArrayList();
data.add(新的int[]{2119629})
对于(int[]tab:data){//I循环每个选项卡(这里只有一个)
对于(inti:tab){//i循环每个值
系统输出打印LN(i);
}
}
}
印刷品 21
19629

这可能是语言语法的限制,或者是规范中的错误,即在解析方法调用语法时,在表达式生成之前发现标识符生成。不要在方法调用中混合匿名数组声明

添加(新的int[]{2119629})

我得到了“预期标识符”和 “类型的非法开始”

data.add(…)中的“预期标识符”可能是由于编译器预期标识符并找到解析为匿名实例的表达式造成的。在某些地方,这种语法是可以接受的,我不确定data.add()为什么需要标识符

“类型的非法开始”可能是编译器认为表达式是匿名类型声明,但语法不允许在方法调用中这样做

尝试使用变量创建它,然后将变量作为方法arg传递

int[] nums = new int[] {0,1,2};   
data.add(nums);

查找ArrayList.add()的更多细节语法,我发现有人在学习ArrayList。JavaGlossary有一套很好的。你的代码使用Netbeans为我编译和运行。可能是特定于编译器的?你使用的编译器是什么?也可能是早期版本的Java不支持这一点,所以升级到1.6,然后再试一次。从字里行间看,他可能是在试图帮助我们e varargs以插入这些数字中的每一个。这并不能解释错误,但添加数组不能作为add方法的vararg。我一直在用1.5编译这个项目。是的。我的计划是构建一个集合并对其进行迭代。@Bryan:现在,您的代码不包含1个集合,它包含许多集合——它们的列表,在fac中t、 列表中的每个元素本身就是一个数组。您可能想这样做,但这是一个不寻常的数据结构。我确实想这样做。它有什么不寻常之处?您会怎么做?它非常有效,但通常我会使用列表或2d数组。
int[] nums = new int[] {0,1,2};   
data.add(nums);