java 列表、集合與陣列之間的轉化
阿新 • • 發佈:2019-01-05
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()); } }