一、ArrayList
How to initialize an ArrayList
初始化
1.1、使用Arrays.asList初始化
语法:
ArrayList<T> obj = new ArrayList<T>(
Arrays.asList(Object o1, Object o2, Object o3, ....));
例子:
int[][] ints = {{1, 3}, {2, 6}, {8, 10}, {15, 18}};
ArrayList<int[]> list = new ArrayList<>(
Arrays.asList(new int[]{1, 3}, new int[]{2, 6}
, new int[]{8, 10}, new int[]{15, 18})
);
System.out.println(list);
输出:
1.2、匿名内部类方法初始化
语法:
ArrayList<T> obj = new ArrayList<T>(){{
add(Object o1);
add(Object o2);
add(Object o3);
...
...
}};
例子:
注意<>里的Integer不能省略,不然会报错误
java: 无法推断java.util.ArrayList<E>的类型参数
原因: 无法将 '<>' 与匿名内部类一起使用
ArrayList<Integer> list1 = new ArrayList<Integer>(){{
add(4);
add(0);
add(6);
}
};
System.out.println(list1);
输出:
1.3、常规方法初始化
语法:
ArrayList<T> obj = new ArrayList<T>();
obj.add("Object o1");
obj.add("Object o2");
obj.add("Object o3");
...
...
例子:
ArrayList<String> list2 = new ArrayList<>();
list2.add("Java");
list2.add("leetcode");
list2.add("406");
System.out.println(list2);
输出:
1.4、使用Collections.ncopies
Collections.ncopies可以用来初始化ArrayList,把所有元素都初始化成相同值。
语法:(count是元素数量,element是元素值)
ArrayList<T> obj = new ArrayList<T>(Collections.nCopies(count, element));
例子:
ArrayList<Test> list3 = new ArrayList<>(
Collections.nCopies(4,new Test()));
System.out.println(list3);
输出:
我会习惯用Arrays.asList,简洁而且容易记忆。