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

7
我将尝试将一个数组转换为集合。如何正确地实现这一目标呢?以下是我的数组:
PersonList[] personlist = restTemplate.getForObject(url, PersonList[].class);

我在做的事情是,获取 JSON 值并通过 restTemplate 进行消费,然后将其放入 PersonList 数组对象中,但我希望将该值作为集合返回。示例:

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

Collection<PersonList> personlist2 = personlist

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


8
尝试使用Arrays.asList(personList) - Thomas
3个回答

15
你可以这样做:
List<PersonList> list = Arrays.asList(personlist);

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

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

此外,您无法向列表添加任何内容。如果您在Arrays.asList(...)返回的列表上调用add,则会收到UnsupportedOperationException

如果您不想这样做,可以像这样复制列表:

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

3
最简单的方法是使用Arrays.asList函数:
Collection<PersonList> personlist2 = Arrays.asList(personlist)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接