集合转数组

首先,我们在看到集合转数组的时候可能第一个想到的就是toArray(),但是我们在调用 toArray()的时候,可能会遇到异常 java.lang.ClassCastException;这是因为 toArray()方法返回的类型是 Obejct[],如果我们将其转换成其他类型,可能就会抛出异常。 这是因为 Java并不支持向下转型。

方法一:通过遍历将集合中的元素一个个取出来放进数组里。

		List 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 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 list = new ArrayList<>();
        Collections.addAll(list, 1,2,3,4,5,6);
        int []nums=new int[]{1,2,3};
        //List 转 int[]   
        int[] arr1 = list.stream().mapToInt(Integer::valueOf).toArray();
        // int[] 转 List       
        List list1 = Arrays.stream(nums).boxed().collect(Collectors.toList());

参考文章:List的toArray()方法_list.toarray_皮卡西的博客-CSDN博客

你可能感兴趣的:(java基础,windows)