从数组创建可变列表?

2022-08-31 09:47:33

我有一个数组,我想变成一个,以便修改数组的内容。List

Stack Overflow 有很多问题/答案,这些问题/答案可以解决,以及它如何仅提供基础数组的 List 视图,以及尝试操作生成的 List 通常会抛出一个 as 方法,用于操作列表的方法(例如 ,等)不是由 提供的 List 实现实现的。Arrays.asList()UnsupportedOperationExceptionadd()remove()Arrays.asList()

但是我找不到如何将数组转换为可变列表的示例。我想我可以循环使用数组和每个值到一个新的List中,但我想知道是否有一个接口可以为我做到这一点。put()


答案 1

一个简单的方法:

Foo[] array = ...;
List<Foo> list = new ArrayList<Foo>(Arrays.asList(array));

这将创建一个可变列表 - 但它将是原始数组的副本。更改列表不会更改数组。当然,您可以稍后使用 .toArray

如果你想在数组上创建一个可变视图,我相信你必须自己实现它。


答案 2

如果您使用的是谷歌集合API(番石榴):

Lists.newArrayList(myArray);