import
java.util.ArrayList;
import
java.util.Arrays;
import
java.util.HashSet;
import
java.util.List;
import
java.util.Set;
/**
* 數組與Collection之間的轉換
*/
public
class
ArrayCollection {
public
static
void
main(String[] args) {
List list =
new
ArrayList();
list.add(
"aaa"
);
list.add(
"bbb"
);
list.add(
"ccc"
);
list.add(
"ddd"
);
//當List中的數據類型都一致時,可以將list轉化成數組
//轉化成對象數組時,直接調用toArray方法
Object[] objArray = list.toArray();
System.out.println(
"從list轉化成的對象數組的長度為: "
+ objArray.length);
//在轉化成其他類型的數組時,需要強制類型轉換,並且,要使用帶參數的toArray方法。
//toArray方法的參數為一個對象數組,將list中的內容放入參數數組中
//當參數數組的長度小於list的元素個數時,會自動擴充數組的長度以適應list的長度
String[] strArray1 = (String[])list.toArray(
new
String[
0
]);
System.out.println(
"從list轉化成的字符串數組的長度為: "
+ strArray1.length);
//分配一個長度與list的長度相等的字符串數組。
String[] strArray2 = (String[])list.toArray(
new
String[list.size()]);
System.out.println(
"從list轉化成的字符串數組的長度為: "
+ strArray2.length);
list.clear();
//清空List
//將數組轉化成List
list =
new
ArrayList(Arrays.toList(strArray1))
System.out.println(
"從數組轉化成的list的元素個數: "
+ objArray.length);
list.clear();
//清空List
//直接使用Arrays類的asList方法
list = Arrays.asList(objArray);
System.out.println(
"從數組轉化成的list的元素個數: "
+ objArray.length);
Set set =
new
HashSet();
set.add(
"aaa"
);
set.add(
"bbb"
);
//Set轉化成數組
objArray = set.toArray();
strArray1 = (String[])set.toArray(
new
String[
0
]);
strArray2 = (String[])set.toArray(
new
String[set.size()]);
//數組轉換成Set
//將數組轉換成List后,再用List構造Set
set =
new
HashSet(Arrays.asList(objArray));
//將Set清空,然后把數組轉換成的List全部add
set.clear();
set.addAll(Arrays.asList(strArray1));
}
}