java - 在 JAVA 中同时用对象和另一个列表初始化最终列表?

标签 java arrays list arraylist initialization

我有一个常量最终列表,我想用一些对象初始化它,同时我想添加一个列表,这在语法上可以用 Java 实现吗?

 public static final List<String> MY_LIST = Arrays.asList(new String [] { "Java","Python","Lisp","C#"});

 public static final List<String> SUB_LIST = Arrays.asList(new String [] {
"Cobol","Pascal"});

现在有没有办法在初始化 MY_LIST 以及其他对象时将 SUB_LIST 添加到 MY_LIST

以简单的伪代码方式,

List A = {"obj1","obj2", addALL(List B)}

谢谢大家。我终于采用了这个解决方案:

public static final List<String> MY_LIST = Collections.unmodifiableList(new ArrayList<String>(){{
addAll(Arrays.asList(new String [] {"Java","Python","Lisp","C#"}));
addAll(SUB_LIST);}});

最佳答案

只有对列表的引用才是最终的,而不是列表本身。如果您想确保列表在初始化后不被更改,您实际上可能想让列表不可修改。

一个解决方案是:

public static final List<String> SUB_LIST = Collections.unmodifiableList(
                                              Arrays.asList("Cobol","Pascal"));

public static final List<String> MY_LIST = Collections.unmodifiableList(
                                              buildMyList(SUB_LIST));

private static List<String> buildMyList(List<String> subList) {
  List<String> myList = new ArrayList<> ();
  Collections.addAll(myList, "Java", "Python", "Lisp", "C#");
  myList.addAll(subList);
  return myList;
}

关于java - 在 JAVA 中同时用对象和另一个列表初始化最终列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180301/

相关文章:

java - ArrayList 与数组。为什么一个工作,一个不工作?

c - C 中的数组初始化有什么不同?

c - 循环后打印问号

list - 在 Common Lisp 中将列表压缩在一起 - "and"的问题

iphone - 我的应用如何获取用户 iPhone 上的日历列表

java - 包装器的 parseXXX() 用于签名二进制误解

java - 表单向 Servlet 发送空查询字符串

java - Shell 脚本运行 Java Jar 服务

java - 如何获取当前的 GPS 位置?

python - 在Python中有效地对相邻列表项进行分组