如何在Java中将集合转为数组?

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

三种方法:1使用toArray(T[] a) 2使用toArray() 3用Java8流将集合对象转换为数组的方法

import java.util.HashSet;
import java.util.Set;

public class Test1 {
    public static void main(String[] args) {
        Set<Integer> allSet = new HashSet<>();
        allSet.add(1);allSet.add(2);allSet.add(3);allSet.add(4);allSet.add(5);allSet.add(6);
        printArray(toArray1(allSet));
        printArray(toArray2(allSet));
        printArray(toArray3(allSet));
    }

    private static void printArray(Object[] arr) {
        for (Object o : arr) {
            System.out.print(o + ",");
        }
        System.out.println();
    }

    // 方法一:用toArray(new Integer[]{})方法直接转为Integer数组
    public static Integer[] toArray1(Set<Integer> allSet) {
        Integer[] arr = allSet.toArray(new Integer[]{});
        return arr;
    }

    // 方法二:用toArray()方法直接转为Object数组
    public static Integer[] toArray2(Set<Integer> allSet) {
        Object[] objArr = allSet.toArray();
        Integer[] intArr = new Integer[objArr.length];
        for (int i = 0; i < objArr.length; i++) {
            intArr[i] = (Integer) objArr[i];
        }
        return intArr;
    }

    // 方法三:用Java8流将集合对象转换为数组的方法
    public static Integer[] toArray3(Set<Integer> allSet) {
        Integer[] arr = allSet.stream().toArray(Integer[]::new);
        return arr;
    }
}
复制代码

image.png

猜你喜欢

转载自juejin.im/post/7019481872291856415
今日推荐