数组和List的转换

本文探讨了Java中数组与List之间的转换技巧,包括如何避免异常,并提供了正确使用方法的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String[] array = {"a","b","c"};

//List<String> list = Arrays.asList(array);//这么写到后边的add()代码是会抛出操作异常的,因为通过asList的方法得到的list是只读的                            ①

List<String> list = new ArrayList<String>(Arrays.asList(array));//这样是可以add的                                                                                                                   ②

list.add("d");


//array=(String [])list.toArray();//采用 ① 处的写法,直接把数组的元素给了list,类似于动物类型的引用list指向子类羊array数组,实质是羊,这里把本质为羊的动物Object[]数组   转换为羊数组,这里没问题;如果是②处的写法,新建了一个ArrayList对象,list指向新对象而并不是实质数组,然后这里的list的toArray()返回的Object[] 类型的数组并不是由之前的String[]数组向上转型或类似的做法得到,即这里的toArray()返回的Object[]数组不是实质是String[]数组,会报类型转换异常。

注:

例1:    Animal animal = new Sheep();  sheep = (sheep)animal;         √

 例2:   wolf = (wolf)sheep;         ×

 例3:   wolf = (wolf)animal;          ×

array=list.toArray(new String[10]);//这样写则①②都是可以的,即把list的元素给了新建的String数组。


总结,下面的都是正确的:

String[] array = {"a","b","c"};

List<String> list = new ArrayList<String>(Arrays.asList(array));                                                                                                  

list.add("d");

array=list.toArray(new String[10]);

------------------------------------------------------

String[] array = {"a","b","c"};

List<String> list = Arrays.asList(array);

array=(String [])list.toArray();

array=list.toArray(new String[10]);


以上。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值