装修设计公司logo东莞seo建站公司哪家好
首先,我们在看到集合转数组的时候可能第一个想到的就是toArray(),但是我们在调用 toArray()
的时候,可能会遇到异常 java.lang.ClassCastException
;这是因为 toArray()
方法返回的类型是 Obejct[]
,如果我们将其转换成其他类型,可能就会抛出异常。 这是因为 Java并不支持向下转型。
方法一:通过遍历将集合中的元素一个个取出来放进数组里。
List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);int[] res = new int[list.size()];for(int i = 0; i < list.size(); i++){res[i] = list[i];}
方案二:通过泛型实现转换
List<Integer> list = new ArrayList<>();Collections.addAll(list, 1,2,3,4,5,6);Integer[] nums = new Integer[list.size()];nums = list.toArray(nums);for(Integer n:nums){System.out.println(n);}
但是通过toArray()不能直接将List对象转换为一般类型的数组。
方案三:使用stream()流
List<Integer> list = new ArrayList<>();Collections.addAll(list, 1,2,3,4,5,6);int []nums=new int[]{1,2,3};//List<Integer> 转 int[] int[] arr1 = list.stream().mapToInt(Integer::valueOf).toArray();// int[] 转 List<Integer> List<Integer> list1 = Arrays.stream(nums).boxed().collect(Collectors.toList());
参考文章:List的toArray()方法_list.toarray_皮卡西的博客-CSDN博客