Java 數組與容器之間的轉化 實現數組動態賦值

List轉換爲String[],int[],等等,下面以String爲例java

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));
 }
}

結果:數組

從list轉化成的對象數組的長度爲: 4
從list轉化成的字符串數組的長度爲: 4
從list轉化成的字符串數組的長度爲: 4
從數組轉化成的list的元素個數: 4
從數組轉化成的list的元素個數: 4
code

相關文章
相關標籤/搜索