java數(shù)組轉(zhuǎn)List的幾種方式
方式一:Arrays.asList();
-
缺點:不可新增、刪除元素。如上圖remove()操作后,會報下圖中的錯誤。
-
報錯原因:Arrays.asList(strArr)返回值是java.util.Arrays類中一個私有靜態(tài)內(nèi)部類
java.util.Arrays.Arraylist,并不是我們平時用的java.util.ArrayList()。
java.util.Arrays.ArrayList類具有 set(),get(),contains()等方法,但是不具有添加add()或刪除remove()方法。 - 使用場景:將數(shù)組轉(zhuǎn)換為List后,不需要增刪其中的值,僅作為數(shù)據(jù)源讀取使用。
方式二:new ArrayList<>(Arrays.asList())
- 優(yōu)點:支持增刪改操作
- 使用場景:需要在將數(shù)組轉(zhuǎn)換為List后,對List進行增刪改操作,適合List的數(shù)據(jù)量不大的情況。
方式三:Collections.addAll()
?根據(jù)數(shù)組的長度創(chuàng)建一個長度相同的List,然后通過Collections.addAll()方法,將數(shù)組中的元素轉(zhuǎn)為二進制,然后添加到List中。
ArrayList< String> arrayList = new ArrayList<String>(strArr.length);
Collections.addAll(arrayList, strArr);
- 優(yōu)點:高效
- 使用場景:需要在將數(shù)組轉(zhuǎn)換為List后,對List進行增刪改查操作,適合List的數(shù)據(jù)量大的情況,可以提高操作速度。
方式四:通過JDK8的Stream流
僅支持int[]、long[]、double[],不支持short[ ]、byte[ ]、char[]。
int[] ints = {1, 2, 3};
Arrays.stream(ints).boxed().collect(Collectors.toList());
long[] longs = {1, 2, 3};
Arrays.stream(longs ).boxed().collect(Collectors.toList());
double[] doubles = {1, 2, 3};
Arrays.stream(doubles).boxed().collect(Collectors.toList());
同樣的引用類型也可以使用這種方式:文章來源:http://www.zghlxwxcb.cn/news/detail-684605.html
Integer[] cardNumberArray = {0, 1, 2, 3};
List<Integer> collect = Arrays.stream(cardNumberArray).collect(Collectors.toList());
引用類型與基礎(chǔ)類型相比 少了 boxed 這一過程,是一個轉(zhuǎn)包裝類的過程。文章來源地址http://www.zghlxwxcb.cn/news/detail-684605.html
到了這里,關(guān)于java數(shù)組轉(zhuǎn)List的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!