JavaSE Array List 转换

JavaSE Array List 转换

标签(空格分隔): JavaSE Array List 转换


List to Array

Collection的两中方法
Object[] toArray()  
<T> T[] toArray(T[] a)  
	list.toArray(new String[0])
	new String[0]是和范式相结合
	传递的数组长度如果大于几个长度填充null 若小于则自动扩容

代码实例

public void fun3() {
	// 可以让list和array互相转换
	List<String> list =  new ArrayList<String>();
	list.add("lucy");
	list.add("rose");
	list.add("jack");
	list.add("tom");
	// 将List转换成数组
	/*
	 * 传递的数组参数,长度如果大于集合长度
	 * 就会将空白元素填充为null
	 * 如果长度小于集合长度
	 * 自动扩容数组
	 */
	String[] ss = list.toArray(new String[0]);
	System.out.println(Arrays.toString(ss));
}

Array to List

asList();
// 可以让list和array互相转换
String[] ss = {"lisi","liuneng","zhaolaoliu","xiaobao"};
// 将数组转换成List
List<String> list = Arrays.asList(ss);
// 转换后的List不能进行增删改操作,底层结构还是数组
list.add("yadan");// 运行异常
System.out.println(list);
// 如果想操作该集合,根据这个集合创建一个新的集合
new ArrayList(list);
public void fun4() {
	// 可以让list和array互相转换
	String[] ss = {"lisi","liuneng","zhaolaoliu","xiaobao"};
	// 将数组转换成List
	List<String> list = Arrays.asList(ss);
	// 转换后的List不能进行增删操作,底层结构还是数组
	list.add("yadan");// 运行异常
	System.out.println(list);
	// 如果想操作该集合,根据这个集合创建一个新的集合
	new ArrayList(list);
}

问题原因

private static class ArrayList<E> extends AbstractList<E>
    implements RandomAccess, java.io.Serializable
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> 
    public void add(int index, E element) {
    throw new UnsupportedOperationException();
}
public E set(int index, E element) {
    throw new UnsupportedOperationException();
}
public E remove(int index) {
    throw new UnsupportedOperationException();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值