概述
此前我们介绍了 java 中的各种容器:
本文我们介绍一下最常用的 Collection 容器 ArrayList 的初始化方法
list.add
最常用的方式是创建容器对象,然后将元素一个一个 add 进来:
ArrayList list = new ArrayList();
list.add("A");
list.add("B");
list.add("C");
双大括号初始化
与上面 list.add 的方法类似,在创建对象的时候,ArrayList 支持一种类似匿名内部类初始化方法:
ArrayList list = new ArrayList() {{
add("A");
add("B");
add("C");
}}
Arrays.asList & Collections.singletonList
java7 以上版本可以使用 Arrays.asList 来创建一个 ArrayList:
List places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata");
如果只有一个元素,则可以使用 Collections.singletonList 来替代 Arrays.asList
List idList = Collections.singletonList(1001);
ImmutableList.of
在 com.google.common.collect 包中提供了很多容器操作类,比如创建一个 ArrayList:
List places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata");
自定义工厂方法
为了这个需求,你也可以自己实现一个工厂方法:
public static ArrayList createArrayList(String ... elements) {
ArrayList list = new ArrayList();
for (String element : elements) {
list.add(element);
}
return list;
}
....
ArrayList places = createArrayList("São Paulo", "Rio de Janeiro", "Brasília");
下面为他增加了泛型:
public static ArrayList createArrayList(T ... elements) {
ArrayList list = new ArrayList();
for (T element : elements) {
list.add(element);
}
return list;
}
创建 N 个相同元素副本的列表
下面的方法创建了一个 1000 个 Object 对象填充的 ArrayList:
ArrayList list = new ArrayList(Collections.nCopies(1000, new Object()));
参考资料
Initialization of an ArrayList in one line -- http://stackoverflow.com/questions/1005073/initialization-of-an-arraylist-in-one-line
微信公众号
欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤
标签
技术帖
技术分享
array
容器
list
java
collection
arraylist