数组和集合的互相转换

数组和集合的转换

基本类型数组转换为包装类型数组

int数组转包装类数组

int[] ary = {1,3,4};
Integer[] intary = Arrays.stream(ary).boxed().toArray(Integer[]::new);//Stream+构造函数引用

数组转集合

Collections.addAll();//数组必须是包装类型;集合可变

Integer[] ary = {2,3,5};
ArrayList<Integer> arylist = new ArrayList<>();
Collections.addAll(arylist,ary);
arylist.add(10);
System.out.println(arylist);

Arrays.asList();//包装类型的数组,对集合操作会导致原数组的改变;转换后的集合长度不能变;不能添加和删除,可以修改.set(index,value);修改后原数组内容也会改变;

Integer[] ary1 = {2,3,5};
List<Integer> list = Arrays.asList(ary1);//new了一个ArrayList集合,注意了,这个可不是ArrayList类,而是Arrays里面的一个静态内部类

如果传入的参数是一个数组,那么这个数组一定要是引用类型才能将其转换为List集合,当传入基本数据类型数组时则会将这个数组对象当成一个引用类型对象存进List集合。

int[] ary = {2,3,5};
List<int[]> intarylist = Arrays.asList(ary);
Integer[] ary1 = {2,3,5};
List<Integer> list = Arrays.asList(ary1);
List<Integer> list1 = Arrays.asList(1, 3, 5, 56);

集合转数组

List.toArray();//无参构造会转成object数组

set.toArray();同上,set可去重再转成数组

List.toArray(T[] a );转成指定引用类型的数组;如果a的长度不够,会放到新数组中返回;

Integer[] ary1 = {2,3,5};
        List<Integer> list = Arrays.asList(ary1);
        Object[] objects = list.toArray();
        Integer[] ary2 = new Integer[list.size()];
        Integer[] ary3 = list.toArray(intary);

list和set相互转换

1.利用各自的构造函数

2.list.addAll(set); set.addAll(list);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值