java 更简洁的方式来向 ArrayList 中新增一个元素
List<String> codeList = new ArrayList<>(List.of(choiceCode));
这里先利用 List.of
创建了一个包含指定元素(这里就是 choiceCode
)的不可变列表,然后将其作为参数传递给 ArrayList
的构造函数来初始化一个可变的 ArrayList
,这样就相当于创建了一个初始只有一个元素(即 choiceCode
)的 ArrayList
。不过要注意的是,后续对这个 ArrayList
修改不会影响通过 List.of
创建的那个初始不可变列表。
方式二:使用双花括号初始化(匿名内部类方式,不过这种方式有一些注意事项)
List<String> codeList = new ArrayList<>() {{ add(choiceCode); }};
通过这种双花括号的语法,在创建 ArrayList
的实例时,利用一个匿名内部类的代码块,在其中调用 add
方法来添加元素。但需要注意的是,这种方式可能会导致额外的类被创建(匿名内部类),在某些对内存管理比较敏感、需要避免不必要类加载的场景下要谨慎使用,并且如果在一些序列化等场景下可能会有一些不符合预期的行为(比如序列化时可能会把匿名内部类相关的一些额外信息也进行序列化等情况)
方式三:直接使用 ArrayList
的构造函数结合可变参数(更常规通用的做法)
List<String> codeList = new ArrayList<>(Arrays.asList(choiceCode));
这里利用 Arrays.asList
方法将单个元素 choiceCode
包装成一个 List
(实际上是 Arrays
内部的一个固定大小的 List
实现),然后再传递给 ArrayList
的构造函数,以此来初始化一个包含指定元素的 ArrayList
。这种方式比较直观和常用,符合常规的创建可变列表并初始化元素的逻辑需求。