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

时间:2015-05-19 08:53:02

标签: java arrays collections

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

如何正确地做到这一点?

这是我的阵列:

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

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

这是我想要呈现的非常错误的代码:

Collection<PersonList> personlist2 = personlist

它不能将数组绑定到集合,导致它的数据类型不同。 我可以兑换吗?

3 个答案:

答案 0 :(得分:8)

你可以这样做:

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

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

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

此外,您将无法在列表中添加任何内容;如果您在add返回的列表上致电Arrays.asList(...),您将获得UnsupportedOperationException

如果你不想这样,你可以像这样制作一份清单:

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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