【问题标题】:How to convert array to collection in Java?如何在Java中将数组转换为集合?
【发布时间】:2015-07-31 00:05:20
【问题描述】:

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

如何正确执行此操作?

这是我的数组:

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

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

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

Collection<PersonList> personlist2 = personlist

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

【问题讨论】:

  • 试试Arrays.asList(personList)

标签: java arrays collections


【解决方案1】:

你可以这样做:

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:
       PersonList[] personlist = restTemplate.getForObject(url, PersonList[].class);
       ArrayList<PersonList> personlist2 = Arrays.asList(personlist)
      

      【讨论】:

        猜你喜欢
        • 2011-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多