Java:集合,數組之間轉換

List,Set轉換為數組的方法。

toArray函數有兩種形式,一種無參數,一種帶參數,注意帶參數形式中,要指明數組的大小。

 

程序代碼:

List----數組

Set----數組

public void convertCollectionToArray() {

List list = new ArrayList();

Object[] objectArray1 = list.toArray();

String[] array1 = list.toArray(new String[list.size()]);

 

Set set = new HashSet();

Object[] objectArray2 = set.toArray();

String[] array2 = set.toArray(new String[set.size()]);

 }

反過來,數組轉換為List,Set。

數組----List----Set

Integer[] numbers = {7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4};

// To convert an array into a Set first we convert it to a List. Next

// with the list we create a HashSet and pass the list as the constructor.

List list = Arrays.asList(numbers);

Set set = new HashSet(list);

注意:對於int[]數組不能直接這樣做,因為asList()方法的參數必須是對象。應該先把int[]轉化為Integer[]。對於其他primitive類型的數組也是如此,必須先轉換成相應的wrapper類型數組。
 

int[] numbers = {7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4};

 int size = numbers.length;

Integer[] array = new Integer[size];

 for (int i = 0; i < numbers.length; i++) {

Integer integer = numbers[i];

 array[i] = integer;

}

 List list = Arrays.asList(array);

Set----List
Set set=new HashSet(new arrayList());
Map----Set  
Map.key----Set  
Map.value----Collection即Set,List
Map map = new HashMap();
map.put("1", "a");
map.put('2', 'b');
map.put('3', 'c');
System.out.println(map);
// 輸出所有的值
System.out.println(map.keySet());
// 輸出所有的鍵
System.out.println(map.values());
// 將map的值轉化為List
List list = new ArrayList(map.values());
System.out.println(list);
// 將map的值轉化為Set
Set set = new HashSet(map.values());
System.out.println(set);