Java技巧:集合和數組的轉換

由於Java平臺API的很大一部分都是在集合框架建立之前設計的,因此有時候需要在傳統的數組和現代的集合之間進行轉換。

如果你有一個數組,就需要將它轉化爲一個集合,Array.asList包裝器能夠實現這個目的,例如:

String[] values = ...;

HashSet<String> staff = new HashSet<String>(Array.asList(values));

 

反過來,如果要從集合得到數組,操作起來就稍微麻煩一下。當然,你也可以直接使用toArray方法:

Object[] values = staff.toArray();

但是該方法運行的結果得到一個對象的數組。即使知道集合包含一組具體類型的對象,也不能使用類型轉換:

String[] values = (String[])staff.toArray();//Error

toArray方法返回的數組是一個Object[]數組,你無法改變它的類型。相反你必須使用toArray方法的某種變體,爲它賦予一個長度爲0的你喜歡使用類型的數組。然後,返回的數組就是與該類型相同的數組了。

String[] values = staff.toArray(new String[0]);

如果你願意,還可以構建一個指定大小的數組:

staff.toArray(new String[staff.size()]);

在這種情況下,並沒有創建新的數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章