设置Java ArrayList的值列表有效:
Integer[] a = {1,2,3,4,5,6,7,8,9};
ArrayList<Integer> possibleValues2 = new ArrayList<Integer>(Arrays.asList(a));
Run Code Online (Sandbox Code Playgroud)
但是,以下操作不起作用,并且具有错误"非法启动类型"以及其他错误.为什么不?由于第一个代码块中的第一行只是赋值,它不应该没有效果吗?
ArrayList<Integer> possibleValues2 = new ArrayList<Integer>(Arrays.asList({1,2,3,4,5,6,7,8,9}));
Run Code Online (Sandbox Code Playgroud)
Pét*_*rök 22
您应该使用vararg版本Arrays.asList,例如
ArrayList<Integer> possibleValues2 =
new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9));
Run Code Online (Sandbox Code Playgroud)
或显式创建数组参数,例如
ArrayList<Integer> possibleValues2 =
new ArrayList<Integer>(Arrays.asList(new Integer[]{1,2,3,4,5,6,7,8,9}));
Run Code Online (Sandbox Code Playgroud)
一个奇怪的,很少使用的成语,
List<Integer> ints = new ArrayList<Integer>() {{add(1); add(2); add(3);}}
Run Code Online (Sandbox Code Playgroud)
这是创建一个扩展ArrayList(外括号)的匿名类,然后实现实例初始化器(内括号)并在那里调用List.add().
一个好的面试问题,如果没有别的.