Java 如何从另一个列表和单独的项创建一个不可变的列表?

Java 如何从另一个列表和单独的项创建一个不可变的列表?,java,collections,Java,Collections,我得到了一个列表,我想添加一个与列表相同类型的元素 List<String> list = List.of("a", "b", "c"); String item = "d"; List List=List.of(“a”、“b”、“c”); 字符串item=“d”; 我想从它们中创建一个不可变的列表 List<String> combined = List.of(list.toArray(new String[0]), item); List combined=Li

我得到了一个列表,我想添加一个与列表相同类型的元素

List<String> list = List.of("a", "b", "c");
String item = "d";
List List=List.of(“a”、“b”、“c”);
字符串item=“d”;
我想从它们中创建一个不可变的列表

List<String> combined = List.of(list.toArray(new String[0]), item);
List combined=List.of(List.toArray(新字符串[0]),项);
当然,上面的代码不会编译,因为它正在查看2参数重载,其中一个参数是字符串[],另一个是字符串,并且希望创建一个大小为2的列表。我想要的是使用字符串的varargs签名,以便以某种方式将项组合到数组中或“分解”数组,然后结果将与单个参数“合并”

我试过什么

List<String> arraylist = new ArrayList<>(list);
arraylist.add(item);
List<String> combined = List.copyOf(arraylist);
List arraylist=新的arraylist(List);
arraylist.add(项目);
列表组合=List.copyOf(arraylist);

这是非常低效的。我能做得更好吗?

你也可以使用@KrishnaSharma,它与不可变列表完全不同。