如何在Java中将数组转换为集合?

How to convert array to collection in Java?

我在这里要做的是将数组转换为集合。

如何正确执行此操作?

这是我的数组:

PersonList[] personlist = restTemplate.getForObject(url, PersonList[].class);

我在那里做的是,我得到 JSON 值并使用 restTemplate 消费,然后我将它放在 PersonList 数组对象中,但我想 return 值作为 Collection。示例:

这是我试图呈现的非常错误的代码:

Collection<PersonList> personlist2 = personlist

它无法将数组绑定到集合,因为它是不同的数据类型。 我可以转换吗?

最简单的方法是使用 Arrays.asList:

Collection<PersonList> personlist2 = Arrays.asList(personlist)

你可以这样做:

List<PersonList> list = Arrays.asList(personlist);

(这个 PersonList 本身是一个列表吗?如果不是,那么为什么 class 被命名为 PersonList 而不是 Person?)。

请注意,Arrays.asList(...) 返回的列表由数组支持。这意味着如果您更改列表中的元素,您将看到数组中的更改,反之亦然。

此外,您将无法向列表中添加任何内容;如果您在 Arrays.asList(...) 返回的列表中调用 add,您将得到 UnsupportedOperationException.

如果你不想要这个,你可以像这样复制列表:

List<PersonList> list = new ArrayList<>(Arrays.asList(personlist));
 PersonList[] personlist = restTemplate.getForObject(url, PersonList[].class);
 ArrayList<PersonList> personlist2 = Arrays.asList(personlist)