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