因为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 }