数组和集合的转换

数组转换成List集合

方法一
就是通过add把数组中的数据循环添加到List集合中
List mlist = new ArrayList<>();
String[] array = new String[] {“zhu”, “wen”, “tao”};
// String数组转List集合
for (int i = 0; i < array.length; i++) {
mlist.add(array[i]);
}
// 输出List集合
for (int i = 0; i < mlist.size(); i++) {
System.out.println(“mlist–>” + mlist.get(i));
}

方法二
采用java中集合自带的asList()方法就可以完成转换了
String[] array = new String[] {“zhu”, “wen”, “tao”};

// String数组转List集合

List mlist = Arrays.asList(array);

// 输出List集合

for (int i = 0; i < mlist.size(); i++)
{
System.out.println(“mlist–>” + mlist.get(i));

}

List集合转换成数组

方法一
把List中的数据循环添加到数组中
List mlist = new ArrayList<>();

mlist.add(“zhu”);

mlist.add(“wen”);

mlist.add(“tao”);

String[] array = new String[mlist.size()];

// List转换成数组

for (int i = 0; i < mlist.size(); i++)
{
array[i] = mlist.get(i);
}

// 输出数组

for (int i = 0; i < array.length; i++)
{
System.out.println("array–> " + array[i]);
}

方法二

采用集合的toArray()方法直接把List集合转换成数组.
这里需要注意,不能这样写:
String[] array = (String[]) mlist.toArray();

这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这是为何呢,这样写看起来没有问题啊
因为java中的强制类型转换是针对单个对象才有效果的,而List是多对象的集合,所以将整个List强制转换是不行的

正确的写法应该是这样的
String[] array = mlist.toArray(new String[0]);
List mlist = new ArrayList<>();

mlist.add(“zhu”);

mlist.add(“wen”);

mlist.add(“tao”);

// List转成数组

String[] array = mlist.toArray(new String[0]);

// 输出数组

for (int i = 0; i < array.length; i++) {

System.out.println("array–> " + array[i]);

}
不管是数组转换成集合,还是集合转换成数组,都要注意转换类型的一致性,String[]数组转String类型的集合,当需要使用int,double等集合的时候,需要使用对应的对象

如:数组int[]用Integer[],double[]用Double[]

因为List集合是对象的集合,而int、double等不是对象,所以需要用字段的对应对象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值