ArrayList的初始化等同于数组的初始化。

59 浏览
0 Comments

ArrayList的初始化等同于数组的初始化。

这个问题在这里已经有答案了

从数组创建 ArrayList

一行代码中初始化 ArrayList

我知道你可以在实例化期间初始化数组,如下所示:

String[] names = new String[] {"Ryan", "Julie", "Bob"};

有没有一种方法可以用同样的方式初始化 ArrayList?还是必须使用array.add()逐个添加内容?

admin 更改状态以发布 2023年5月24日
0
0 Comments

是的。

new ArrayList(){{
   add("A");
   add("B");
}}

实际上这样做是创建一个继承自ArrayList的类(外部花括号做这个),然后声明一个静态的初始化器(内部花括号)。这实际上是包含类的内部类,因此它将有一个隐式的this指针。除非你想将其序列化,或者你希望外部类被垃圾回收,否则不会有问题。

我知道Java 7会提供更多的语言结构来实现你想要的精确功能。

编辑:最近的Java版本提供了更多可用的函数来创建这些集合,因此值得调查这些函数,而不是使用上述方法(此方法是在这些版本之前提供的)。

0
0 Comments

Arrays.asList 可以帮助实现这个:

new ArrayList(Arrays.asList(1,2,3,5,8,13,21));

0