[Java]最少代码优雅实现初始化数组ArrayList并添加元素的多个方式整理

2021-07-11 72点热度 0人点赞 0条评论

开发的时候,偶尔需要生成一个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());

 

admin

这个人很懒,什么都没留下

文章评论

*

code