1. 程式人生 > >java 列表、集合與陣列之間的轉化

java 列表、集合與陣列之間的轉化

package test;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class Test2 {
	public static void main(String[] args) {

		List list = new ArrayList();

		list.add("a");

		list.add("b");

		list.add("c");

		list.add("d");

		// list.add(1);//會產生java.lang.ArrayStoreException異常

		// 當list中的資料型別都一致時可以將list轉化為陣列

		Object[] array = list.toArray();

		System.out.println("從list轉換成的物件陣列長度為:" + array.length);

		// 在轉化為其它型別的陣列時需要強制型別轉換,並且,要使用帶引數的toArray方法,引數為物件陣列,

		// 將list中的內容放入引數陣列中,當引數陣列的長度小於list的元素個數時,會自動擴充陣列的長度以適應list的長度

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

		System.out.println("從list轉換成的字串陣列長度為:" + array1.length);

		// 分配一個長度與list的長度相等的字串陣列

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

		System.out.println("從list轉換成的字串陣列長度為:" + array2.length);

		list.clear();

		// 將陣列轉換成list

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

			list.add(array[i]);

		}

		System.out.println("將陣列轉換成list的元素個數為:" + list.size());

		list.clear();

		// 直接使用Arrays的asList方法

		list = Arrays.asList(array);

		System.out.println("將陣列轉換成list的元素個數為:" + list.size());

		Set set = new HashSet();

		set.add("a");

		set.add("b");

		// 將set轉換為陣列

		array = set.toArray();

		array1 = (String[]) set.toArray(new String[0]);

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

		System.out.println("從Set轉換成的物件陣列長度為:" + array.length);

		System.out.println("從Set轉換成的字串陣列長度為:" + array2.length);

		// 陣列轉換成Set

		// 將陣列轉換成List後,再用List構造Set

		set = new HashSet(Arrays.asList(array));

		System.out.println("將陣列轉換成Set的元素個數為:" + list.size());

		// 將Set清空,然後把陣列轉換成的list全部add

		set.clear();

		set.addAll(Arrays.asList(array1));

		System.out.println("將陣列轉換成Set的元素個數為:" + list.size());

	}

}