ArrayList 和 Array之间的转换

我们常常需要在ArrayList和Arrays之间转换,即在集合和数组间转换,接下来就谈谈这个内容。

ArrayList转化为数组(array)

ArrayList有个方法叫toArray() ,可以将ArrayList转化为数组

下面用一个例子来演示:

List<String> list = new ArrayList<String>();

list.add("India");
list.add("Switzerland");
list.add("Italy");
list.add("France");

String [] countries = list.toArray(new String[list.size()]);

这样我们可以使用泛型定义任何一种类型的ArrayList转化为array,代码如下:

List<T> list = new ArrayList<T>();

T [] countries = list.toArray(new T[list.size()]);

数组(array)转化为ArrayList

数组可以使用asList()方法,将数组转化为ArrayList()

下面用一个例子来演示:

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

...

String[] countries = {"India", "Switzerland", "Italy", "France"};
List list = Arrays.asList(countries);
System.out.println("ArrayList of Countries:" + list);

这里转化后要注意:此时的list对象是不可改变的,它不是一个java.util.ArrayList类。当你调用Arrays.asList()时,它返回的是 java.util.Arrays$ArrayList,这是一个不可变集合,这样你是不能向它添加新值。在这种情况下如果你加入新值,则会抛出UnsupportedOperationException异常。

要解决这个问题,list对象需是一个可操作的集合,可以新建一个List对象,如下面的代码:
String[] countries = {"India", "Switzerland", "Italy", "France"};
List list = new ArrayList(Arrays.asList(countries));
System.out.println("ArrayList of Countries:" + list);
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值