ArrayList的初始化等同于数组的初始化。
ArrayList的初始化等同于数组的初始化。
这个问题在这里已经有答案了:
我知道你可以在实例化期间初始化数组,如下所示:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
有没有一种方法可以用同样的方式初始化 ArrayList?还是必须使用array.add()
逐个添加内容?
admin 更改状态以发布 2023年5月24日
是的。
new ArrayList(){{ add("A"); add("B"); }}
实际上这样做是创建一个继承自ArrayList
的类(外部花括号做这个),然后声明一个静态的初始化器(内部花括号)。这实际上是包含类的内部类,因此它将有一个隐式的this
指针。除非你想将其序列化,或者你希望外部类被垃圾回收,否则不会有问题。
我知道Java 7会提供更多的语言结构来实现你想要的精确功能。
编辑:最近的Java版本提供了更多可用的函数来创建这些集合,因此值得调查这些函数,而不是使用上述方法(此方法是在这些版本之前提供的)。