1.构造List后使用List.add初始化
List<String> stringList = new LinkedList<String>();
stringList.add("a");
stringList.add("b");
stringList.add("c");
2.使用{{}}
List<String> stringList = new LinkedList<String>(){{
add("a");
add("b");
add("c");
}};
外层的{}定义了一个LinkedList匿名内部类。内层的{}定义了一个实例初始化代码块。这个代码块在初始化内部类时执行。
缺点:
使用匿名内部类,会有效率上的损失。当然大多数情况下,这点效率都是可以接受的。
静态内部类持有所在外部类的引用。如果需要将List返回给其他地方使用,可能造成内存泄漏。
3.使用Arrays.asList
List<String> stringList = Arrays.asList("a","b","c");
这种方法使用了java.util.Arrays的静态方法。
Arrays.asList返回的是Arrays的静态内部类。这个内部类继承自AbstractList,实现了RandomAccess,内部使用了一个数组来存储元素,但是不支持增删元素。
4.使用Stream
List<String> stringList = Stream.of("a","b","c").collect(Collectors.toList());
5.使用Lists
List<String> stringList = Lists.newArrayList("a","b","c");