300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java中集合和数组的相互转换

java中集合和数组的相互转换

时间:2022-12-03 00:02:09

相关推荐

java中集合和数组的相互转换

代码:

public class Test {public static void main(String[] args) {Integer[] a = {1, 2, 3};// 数组转成集合// 以下参数是一个可变参数,可以直接写数组,或者直接写可变参数值也行,比如Arrays.asList(1,2,3,4)这种形式List<Integer> list = Arrays.asList(a);System.out.println("输出集合中的元素:");for (Integer i : list) {System.out.println(i);}// 集合转成数组Integer[] b = list.toArray(new Integer[0]);System.out.println("输出数组中的元素:");for (Integer i : b) {System.out.println(i);}}}

结果:

输出集合中的元素:123输出数组中的元素:123

解释:

集合和数组的转换当然可以通过for循环来做,但是这种做法需要写比较多的代码,所以不是特别令人满意,毕竟大神已经做好轮子了,我们没有必要再去做轮子,对于数组转换成集合没有什么好说的,直接一个asList()方法就搞定了,对于集合转换成数组那就有点说头了,首先集合还有一个方法是无参的toArray(),不过这个方法的返回值是Object[],源码如下:

Object[] toArray();

但是我们还不能进行强制类型转换,毕竟可以强制类型转换单个对象,但是无法对数组进行转换,然后里面还有一个带参的toArray()方法,源码如下:

<T> T[] toArray(T[] a);

这个需要我们指定泛型,所以我们上面的代码就是Integer[] b = list.toArray(new Integer[0]);,至于里面为什么是new Integer[0],你可以这样思考,我们只需要指明一下类型,但是定义数组的时候我们必须指定数组的长度,不过这个长度也没有什么用,只是为了符合数组定义要求而已,所以为了节约内存,我们就把长度设置成0,这样也指定了数组类型,并且也没有浪费内存空间

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。