1.常规操作
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
2.Arrays工具类(不可变)
List<Integer> list1= Arrays.asList(1,2,3);
asList是Arrays的静态方法。这种方式构造的List是固定长度的,如果调用add方法增加新的元素,会报异常java.lang.UnsupportedOperationException。适用于构造静态不变的List.
但是可以通过ArrayList进行包装成动态。
List<Integer> list2=new ArrayList<>(Arrays.asList(1,2,3));
list2.add(4);
3.JDK8引入的Stream提供的方法
List<Integer> list3 = Stream.of(1, 2, 3).collect(toList());
4.Collections工具类(不可变)
List<Integer> list4 = Collections.nCopies(5, 1);
复制某元素N遍
也可通过ArrayList进行包装
List<Integer> list5 = new ArrayList<>(Collections.nCopies(5, 1));
list5.add(2);
5.匿名内部类
List<Integer> list6 = new ArrayList() {{
add(1);
add(2);
add(3);
}};
list6.add(4);
6.JDK9引入的 Lists
List<Integer> list7 = Lists.newArrayList(1, 2, 3);
list7.add(4);
7.使用 guava包的Lists
使用方法同上,提出这种方法主要是很多项目还是java8,没法直接用java9的Lists。
List<Integer> list8 = Lists.newArrayList(1, 2, 3);
list8.add(4);
8JDK9引入 List.of (不可变)
List<Integer> list9 = List.of(1,2,3);