开发的时候,偶尔需要生成一个ArrayList数组,里面需要指定多个元素,最简单无脑的方式就是new ArrayList(); 然后下一行代码 ArrayList.add多个元素。
本文介绍下更简便一些的方式:
// 方式1 利用Arrays.asList (但是这样生成了一个不可变的数组,如果后续元素不改变了,建议用Immutable List这种方式)
List<String> names = Arrays.asList("Terry", "Tony", "Lily");
name.add("Kate"); // 反例,不要这样做
// 方式2 如果只有一个元素,可以这样做(这也是一个不可改变的数组):
List<String> name2 = Collections.singletonList("Terry");
//注意Collections.singletonList生成的是Immutable的List,修改元素会报错:UnsupportedOperationException
name2.add("Kate"); // 反例,不要这样做
// 方式3 适用Java9, 同样是不可改变的数组
List<String> name3 = List.of("Terry", "Tony", "Lily");
// ------------- 以下生成的都是可修改的数组 ---------------//
// 方式4 如果需要生成一个可修改的List,只要再new ArrayList<>(ImmutableList) 参数就是上面生成的不可变数组
ArrayList<String> names4 = new ArrayList<>(Arrays.asList("Terry", "Tony", "Lily"));
names4.add("Kate"); //这样就没问题了!
// 方式5
List<String> name4 = new ArrayList<String>(){{
add("Terry");
add("Tony");
}};
// 方式6 利用Java8 Stream
List<String> names5 = Stream.of("Terry", "Tony").collect(Collectors.toList());
文章评论