java中将数组array转为ArrayList,arrayarraylist
分享于 点击 32148 次 点评:91
java中将数组array转为ArrayList,arrayarraylist
1、非基本数据类型的数组,如String类、自定义类等的类型数组等。这里以String[]为例,假设已知字符串数组String[] strs,
1.1、ArrayList<String> list=new ArrayList<>(Arrays.asList(strs))。
这一方式利用了ArrayList的构造函数,故list是一个新的ArrayList实例,可以调用任何ArrayList类的可使用方法。
据说这也是StackOverFlow上面最受欢迎的答案。
1.2、List<String> list=Arrays.asList(strs);
这个方法和上面的不同之处是:虽然asList()方法是通过new了一个ArrayList作为返回结果,但是这个list实例大小是固定的,和strs大小一致。因为其底层是由一个固定大小的数组作为支撑的。故对list实例执行add()方法,实际是对一个大小固定的数组做add操作,这时会提示异常java.lang.UnsupportedOperationException。但是执行一些可以对数组进行的操作是可以的。这一点可以通过查看asList()源码注释看到。
这一点参考了博客:http://blog.csdn.net/snarlfuture/article/details/16966921
2、基本数据类型的数组,如int[],double[],long[]这三类,可以使用stream;其它几种基本类型,目前除了for循环赋值,目前还没想到。
如:
int[] ints={1,2,3,4};
List<Integer> integers= IntStream.of(ints).boxed().collect(Collectors.toList());
long[] longs={3,3,4};
List<Long> longs1=LongStream.of(longs).boxed().collect(Collectors.toList());
double[] doubles={3,2,5};
List<Double> doubles1=DoubleStream.of(doubles).boxed().collect(Collectors.toList());
相关文章
- 暂无相关文章
用户点评