在java编程中,数组、列表和集合作为三种使用最多的存储结构,经常需要进行彼此转换。具体方法如下:
一、数组与列表(List)之间的相互转换
1、数组转换成List,可以用JDK中的java.util.Arrays类:
import java.util.Arrays;
String[] strArray = {"aaa", "bbb", "ccc"};
List strList = Arrays.asList(strArray);
不过Arrays.asList()方法返回的List不能add和删除对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList。
2、List转换为数组,可以使用toArray方法,返回一个Object数组,然后在向下强转为所需要的类型
List list = new ArrayList();
list.add("a"); list.add("b"); list.add("c"); list.add("d");
String[] array2 = (String[]) list.toArray(new String[list.size()]);
二、数组与集合之间的相互转换
1、数组转换为集合必须先将数组转换为列表再转换为集合(Set)
String[] staffs = new String[]{"bob","tom","jack"};
Set<String> staffsSet = new HashSet<>(Arrays.asList(staffs));
2、集合转换为数组使用集合(Set)中的toArray方法返回一个Object数组,再向下进行类型转换,得到需要的数组类型
HashSet<Integer> b=new HashSet<Integer>(); b.add(3); b.add(4);
Object[] num=(b.toArray());
int[] nums=new int[num.length];
for (int i=0;i<num.length;i++)
{
nums[i]=(int)num[i];//向下转型
}
三、集合与列表之间的相互转换
1、列表中有构造方法可以将集合直接转为列表
List list = new ArrayList(new Hashset());// Fixed-size list
2、集合中有构造方法可以将列表直接转为集合
Set result = new HashSet(new ArrayList());
二