ArrayList初始化等同于数组初始化
这个问题在这里已经有了答案:
Arrays.asList可以在这里帮助:
new ArrayList<Integer>(Arrays.asList(1,2,3,5,8,13,21));
是。
new ArrayList<String>(){{
add("A");
add("B");
}}
这实际上做的是创建一个从ArrayList<String>
派生的类(外层的大括号做这个),然后声明一个静态初始化器(内置的大括号)。 这实际上是一个内部类包含类的,所以这将有一个隐含的this
指针。 除非你想串行化,否则不是问题,或者你期望外部类被垃圾收集。
据我所知,Java 7将提供额外的语言结构来完成你想要的功能。
编辑:最近的Java版本提供了更多可用的功能来创建这样的集合,并且值得研究以上(在这些版本之前提供)
这里是最接近你可以得到:
ArrayList<String> list = new ArrayList(Arrays.asList("Ryan", "Julie", "Bob"));
你可以更简单地使用:
List<String> list = Arrays.asList("Ryan", "Julie", "Bob")
查看Arrays.asList的源代码,它构造一个ArrayList,但默认情况下会转换为List。 所以你可以这样做(但对于新的JDK不可靠):
ArrayList<String> list = (ArrayList<String>)Arrays.asList("Ryan", "Julie", "Bob")
链接地址: http://www.djcxy.com/p/17625.html
上一篇: ArrayList initialization equivalent to array initialization
下一篇: Iterating through a Collection, avoiding ConcurrentModificationException when removing in loop