一、數組轉集合方法
在Java中,可以使用Arrays.asList()方法將數組轉換為集合,這個方法接收一個數組, 返回一個類型為List(T)的集合。該方法存在的意義在於,可以將數組當做實參傳遞給方法,而不用去手動拷貝數組。
String[] arr = {"a", "b", "c", "d", "e"};
List list = Arrays.asList(arr);
System.out.println(list); // [a, b, c, d, e]
需要注意的是,Arrays.asList()返回的集合對象不能進行添加、刪除操作,因為Arrays.asList()方法返回的集合是AbstractList的子類,而AbstractList並沒有實現add()、remove()等方法。如果要添加或刪除元素,可以使用List中的其他實現類,比如ArrayList:
String[] arr = {"a", "b", "c", "d", "e"};
List list = new ArrayList(Arrays.asList(arr));
list.add("f");
System.out.println(list); // [a, b, c, d, e, f]
二、集合轉為數組的方法
將集合轉換為數組的方法是Collection接口中的toArray()方法,該方法根據集合的元素數量創建一個新的數組,並將集合的元素複製到該數組中。 toArray()有兩種重載形式:
一種是無參的toArray()方法,該方法返回一個Object類型的數組:
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr)); // [a, b]
另一種是帶參的toArray(T[] a)方法,該方法接收一個類型為T[]的數組作為參數,如果該數組的長度大於等於集合的元素數量,那麼將集合的元素複製到該數組中,否則將創建一個新的數組,並將集合的元素複製到該數組中。這個方法常用於將集合轉化為指定類型的數組。
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = new String[3];
arr[2] = "c";
list.toArray(arr);
System.out.println(Arrays.toString(arr)); // [a, b, c]
三、集合轉數組的方法
如果需要將一個集合轉換成數組,也可以使用Collections類中的toArray()方法,該方法會根據集合中元素的類型創建一個新的數組,並將集合中的元素複製到該數組中。這個方法有兩種重載形式:
一種是無參的toArray()方法,該方法返回一個Object類型的數組:
List list = new ArrayList();
list.add("a");
list.add("b");
Object[] arr = Collections.toArray(list);
System.out.println(Arrays.toString(arr)); // [a, b]
另一種是帶參的toArray(T[] a)方法,接收一個類型為T[]的數組作為參數。如果該數組的長度大於等於集合的元素數量,那麼將集合的元素複製到該數組中,否則將創建一個新的數組,並將集合的元素複製到該數組中。
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = new String[3];
arr[2] = "c";
list.toArray(arr);
System.out.println(Arrays.toString(arr)); // [a, b, c]
四、數組轉對象的方法
如果想將一個數組轉換成一個Object對象,可以使用Arrays類中的toString()方法或者deepToString()方法:
int[] arr = {1, 2, 3};
Object obj1 = Arrays.toString(arr); // "[1, 2, 3]"
Object obj2 = Arrays.deepToString(arr);// 拋出異常
當使用toString()方法轉換基本類型數組時,得到的結果只是一個字符串。如果要轉換一個Object數組,使用Arrays類的deepToString()方法。
五、小結
本文詳細介紹了數組轉集合的方法,包括使用Arrays.asList()方法和使用List中的其他實現類;集合轉為數組的方法,包括使用Collection接口中的toArray()方法和帶參的toArray(T[] a)方法;集合轉數組的方法,包括使用Collections類中的toArray()方法;數組轉對象的方法,包括使用Arrays類中的toString()方法和deepToString()方法。在實際開發中,如果需要將數組和集合進行轉換,可以根據業務需求來選擇不同的方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/269987.html