1. 程式人生 > >Java技巧:集合和陣列的轉換

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()]);

在這種情況下,並沒有建立新的陣列。