Java中的List、Set互转
因为List和Set都实现了Collection接口,且addAll(Collection<? extends E> c);方法,因此可以采用addAll()方法将List和Set互相转换;另外,List和Set也提供了Collection<? extends E> c作为参数的构造函数,因此通常采用构造函数的形式完成互相转化。
1 public static void main(String[]args){
2 String[] array = {"A", "B", "C", "D"};
3 //1-1、数组转List
4 //需要注意的是, Arrays.asList() 返回一个受指定数组决定的固定大小的列表。
5 // 所以不能做 add 、 remove 等操作,否则会报错。
6 List list1= Arrays.asList(array);
7 //1-2、数组转HashSet
8 Set<String> set1=new HashSet<>(Arrays.asList(array));
9 //2-1、List转数组
10 List<String> list2=Arrays.asList("Tom","John","Lily");
11 Object []array1=list2.toArray();
12 //2-2、List转HashSet
13 List<String> list3=Arrays.asList("Tom","John","Lily");
14 Set<String> set2=new HashSet<>(list3);
15 //3-1、set转数组
16 String[] array4 = {"K", "J", "P", "U"};
17 Set<String> set4=new HashSet<>(Arrays.asList(array4));
18 Object[] array5=set4.toArray();
19 //3-2、set转List
20 List<String> list=new ArrayList<>(set4);
21 }