如何在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)
我在这里要做的是将数组转换为集合。
如何正确执行此操作?
这是我的数组:
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)