Hei*_*bug 5 java initialization arraylist
在Java的隐藏特性问题中,我对实例初始化器的答案感兴趣.
我想知道如何修改这一行:
List<Integer> numbers = new ArrayList<Integer>(){{ add(1); add(2); }};
Run Code Online (Sandbox Code Playgroud)
为了使它与嵌套的Arraylists执行相同的工作:
ArrayList<ArrayList<Integer>> numbers = ...
Run Code Online (Sandbox Code Playgroud)
那可能吗?
List<Integer> numbers = new ArrayList<Integer>(){{ add(1); add(2); }};
Run Code Online (Sandbox Code Playgroud)
我真的不推荐这种方法,因为它无缘无故地创建了一个(匿名)类。
使用以下任一方法:
List<Integer> numbers = Arrays.asList(1, 2);
Run Code Online (Sandbox Code Playgroud)
或者
List<Integer> numbers = new ArrayList<Integer>(Arrays.asList(1, 2));
Run Code Online (Sandbox Code Playgroud)
对于 2 个级别,您可以使用:
List<List<Integer>> numbers = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(2,3,4));
Run Code Online (Sandbox Code Playgroud)
通过静态导入,如果您确实想要的话,您甚至可以将其简化为:
List<List<Integer>> numbers = asList(asList(1, 2), asList(2,3,4));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
949 次 |
| 最近记录: |