ArrayList 和 Array之间的转换

来源:互联网 发布:李小龙拳脚力量数据 编辑:程序博客网 时间:2024/05/27 02:28

我们常常需要在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);
0 0