java数组转List的几种方式
方式一:Arrays.asList();
-
缺点:不可新增、删除元素。如上图remove()操作后,会报下图中的错误。
-
报错原因:Arrays.asList(strArr)返回值是java.util.Arrays类中一个私有静态内部类
java.util.Arrays.Arraylist,并不是我们平时用的java.util.ArrayList()。
java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不具有添加add()或删除remove()方法。 - 使用场景:将数组转换为List后,不需要增删其中的值,仅作为数据源读取使用。
方式二:new ArrayList<>(Arrays.asList())
- 优点:支持增删改操作
- 使用场景:需要在将数组转换为List后,对List进行增删改操作,适合List的数据量不大的情况。
方式三:Collections.addAll()
根据数组的长度创建一个长度相同的List,然后通过Collections.addAll()方法,将数组中的元素转为二进制,然后添加到List中。
ArrayList< String> arrayList = new ArrayList<String>(strArr.length);
Collections.addAll(arrayList, strArr);
- 优点:高效
- 使用场景:需要在将数组转换为List后,对List进行增删改查操作,适合List的数据量大的情况,可以提高操作速度。
方式四:通过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());
同样的引用类型也可以使用这种方式:文章来源:https://www.toymoban.com/news/detail-684605.html
Integer[] cardNumberArray = {0, 1, 2, 3};
List<Integer> collect = Arrays.stream(cardNumberArray).collect(Collectors.toList());
引用类型与基础类型相比 少了 boxed 这一过程,是一个转包装类的过程。文章来源地址https://www.toymoban.com/news/detail-684605.html
到了这里,关于java数组转List的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!