一、toList()方法介紹
Java8中,List接口提供了一個新方法toList(),可以將一個List轉換為一個新的List。使用該方法的語法如下:
List newList = oldList.stream().toList();
其中,oldList是需要轉換的原List,newList是轉換後得到的新List。需要注意的是,toList()方法返回的新List是一個不可修改的List。下面是一個實際的代碼示例:
List oldList = Arrays.asList(1, 2, 3, 4, 5); List newList = oldList.stream().toList();
二、使用toList()方法將List轉換為數組
除了將List轉換為List之外,toList()方法還可以將List轉換為數組。下面是一個實際的代碼示例:
List oldList = Arrays.asList(1, 2, 3, 4, 5); Integer[] newArray = oldList.stream().toArray(Integer[]::new);
其中,Integer[]::new表示創建一個Integer類型的數組。需要注意的是,如果List中的元素類型和數組的類型不一致,將會拋出ClassCastException異常。
三、使用toArray()方法將List轉換為數組
除了使用toList()方法,List接口還提供了一個toArray()方法用於將List轉換為數組。該方法的語法如下:
T[] newArray = list.toArray(new T[0]);
其中,T是指數組的元素類型,newArray是轉換後得到的新數組。下面是一個具體的代碼示例:
List list = new ArrayList(); list.add(1); list.add(2); list.add(3); Integer[] newArray = list.toArray(new Integer[0]);
需要注意的是,如果傳遞給toArray()方法的數組大小小於List的大小,toArray()方法將創建一個新數組,使用元素類型的默認值填充未使用的元素。如果傳遞的數組大小大於List的大小,則不會創建新數組。
四、使用toList()方法和toArray()方法避免類型轉換異常
在Java中,List和數組之間主要存在兩種類型轉換異常,即ClassCastException和ArrayStoreException。使用toList()方法和toArray()方法可以有效避免這兩種異常的出現。
如果將一個非Integer類型的List轉換為Integer類型的數組,就會拋出ClassCastException異常。下面是一個具體的代碼示例:
List oldList = Arrays.asList("1", "2", "3", "4", "5"); Integer[] newArray = oldList.stream().toArray(Integer[]::new); // 拋出ClassCastException異常
如果使用toArray()方法將非Integer類型的List轉換為Integer類型的數組,就會拋出ArrayStoreException異常。下面是一個具體的代碼示例:
List list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); Integer[] newArray = list.toArray(new Integer[0]); // 拋出ArrayStoreException異常
使用toList()方法和toArray()方法可以將類型轉換的異常問題有效避免。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200658.html