Java中的數組和列表(List)是常用的數據結構,在使用過程中可能需要將數組轉換為列表,或者列錶轉換為數組。本文將詳細闡述Java數組轉列表的操作方法及相關注意事項。
一、創建數組
在Java中,數組是一種容器,可以存儲大量相同數據類型的數據。創建一個數組可以使用以下代碼:
int[] arr = new int[]{1, 2, 3};
其中,int[]表示整數數組,{1, 2, 3}是數組的初始值。也可以通過以下代碼創建一個指定長度的數組:
int[] arr = new int[3];
這表示創建一個長度為3的整數數組,其中每個元素的值為0。
二、使用Arrays.asList方法轉換數組為列表
Java中提供了一個Arrays類,其中有一個asList方法可以將數組轉換為列表。以下代碼展示了如何使用這個方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr);
首先創建了一個字元串數組,然後調用asList方法將數組轉換為列表。轉換後可以通過索引訪問列表中的元素,也可以使用列表相關的方法操作列表。
三、轉換後的列表不可改變
需要注意的是,通過asList方法轉換出的列表是不可改變的,這表示不能向列表中添加或刪除元素,也不能修改列表中元素的值。以下代碼展示了一種嘗試添加元素的方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); list.add("pear");
當嘗試向列表中添加元素時,會拋出java.lang.UnsupportedOperationException異常。如果需要修改列表中元素的值可以使用set方法,如下所示:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); list.set(0, "pear");
這樣可以將列表中索引為0的元素修改為”pear”。
四、基本類型數組和包裝類數組的轉換
在Java中,基本類型數組和包裝類數組可以通過asList方法分別轉換成對應的列表類型。以下代碼展示了兩種不同類型數組轉換為列表的方法:
int[] arr1 = new int[]{1, 2, 3}; List<Integer> list1 = Arrays.stream(arr1).boxed().collect(Collectors.toList()); Integer[] arr2 = new Integer[]{1, 2, 3}; List<Integer> list2 = Arrays.asList(arr2);
第一種方法將基本類型數組先轉換為對應的包裝類數組,然後通過流式API的方式轉換為列表。第二種方法直接將包裝類數組轉換為列表。需要注意的是,如果直接將基本類型數組轉換為列表會拋出ClassCastException異常。
五、數組和列表的遍歷
在將數組轉換為列表後,可以通過多種方式遍歷列表,以下代碼展示了其中兩種常用的方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); //使用foreach遍歷列表 for(String fruit : list) { System.out.println(fruit); } //使用迭代器遍歷列表 Iterator<String> iterator = list.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); }
第一種方法使用foreach語句遍歷列表,可以直接訪問列表元素。第二種方法先通過iterator方法獲取迭代器對象,然後使用hasNext和next方法遍歷列表。
六、小結
通過Arrays.asList方法可以將Java數組轉換為列表,但需要注意轉換的列表是不可改變的。同時,需要注意基本類型數組和包裝類數組的轉換問題。在遍歷轉換後的列表時,可以使用foreach語句或者迭代器來進行遍歷。
原創文章,作者:PJUPO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329339.html