2015-05-19 60 views
4

我想在這裏做的是將數組轉換爲集合。

如何正確地做到這一點?如何將數組轉換爲Java中的集合?

這裏是我的數組:

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

我是做在那裏,我得到JSON值和restTemplate消耗,然後我把它放在PersonList數組對象,但我想返回值的集合。例如:

這是我想表達的非常錯誤代碼:

Collection<PersonList> personlist2 = personlist 

它不能數組集合捆綁,因爲它是不同的數據類型。 我可以轉換它嗎?

+7

嘗試'Arrays.asList(personList)' – Thomas

回答

8

你可以這樣做:

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) 
0
PersonList[] personlist = restTemplate.getForObject(url, PersonList[].class); 
ArrayList<PersonList> personlist2 = Arrays.asList(personlist) 
相關問題