数组列表初始化等效于数组初始化
2022-08-31 05:09:50
我知道您可以在实例化期间初始化数组,如下所示:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
有没有办法对ArrayList做同样的事情?或者我必须单独添加内容?array.add()
我知道您可以在实例化期间初始化数组,如下所示:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
有没有办法对ArrayList做同样的事情?或者我必须单独添加内容?array.add()
是的。
new ArrayList<String>(){{
add("A");
add("B");
}}
这实际上是创建一个派生的类(外部大括号集执行此操作),然后声明一个静态初始化器(内部大括号集)。这实际上是包含类的内部类,因此它将具有隐式指针。这不是问题,除非您想要序列化它,或者您希望对外部类进行垃圾回收。ArrayList<String>
this
我知道Java 7将提供额外的语言结构来精确地做你想做的事情。
编辑:最近的Java版本为创建此类集合提供了更多可用的功能,并且值得在上述内容上进行研究(在这些版本之前提供)