此前我们介绍了 java 中的各种容器:
Collection 及其相关实现的容器简介及用法
本文我们介绍一下最常用的 Collection 容器 ArrayList 的初始化方法
最常用的方式是创建容器对象,然后将元素一个一个 add 进来:
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
与上面 list.add 的方法类似,在创建对象的时候,ArrayList 支持一种类似匿名内部类初始化方法:
ArrayList<String> list = new ArrayList<String>() {{
add("A");
add("B");
add("C");
}}
java7 以上版本可以使用 Arrays.asList 来创建一个 ArrayList:
List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata");
如果只有一个元素,则可以使用 Collections.singletonList 来替代 Arrays.asList
List<Long> idList = Collections.singletonList(1001);
在 com.google.common.collect 包中提供了很多容器操作类,比如创建一个 ArrayList:
List<String> places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata");
为了这个需求,你也可以自己实现一个工厂方法:
public static ArrayList<String> createArrayList(String ... elements) {
ArrayList<String> list = new ArrayList<String>();
for (String element : elements) {
list.add(element);
}
return list;
}
....
ArrayList<String> places = createArrayList("São Paulo", "Rio de Janeiro", "Brasília");
下面为他增加了泛型:
public static <T> ArrayList<T> createArrayList(T ... elements) {
ArrayList<T> list = new ArrayList<T>();
for (T element : elements) {
list.add(element);
}
return list;
}
下面的方法创建了一个 1000 个 Object 对象填充的 ArrayList:
ArrayList<Object> list = new ArrayList<Object>(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
google