这是因为直接使用 set.toArray()方法返回的是Object[]数组。Object是所有类型的父类,但是Object[]是数组,与Integer[]数组是平级关系,两者无父子关系,所以不能进行强制转换。解决思路有两种:1.拿到Object数组后,拿到单个Object后转换成Interger或者其他类型。2.在toArray()中传入Set参数类型的数组。
不推荐方法1。
//拿到Set集合
Set<Integer> integers = map.keySet();
Object[] t = integers.toArray();
//将数据进行转换
Integer t = (Integer) array[0];
推荐方法2
//拿到Set集合
Set<Integer> integers = map.keySet();
//构建Integer数组
Integer[] array = new Integer[integers.size()];
//在toArray中传入Integer数组,此时array就是结果数组。
integers.toArray(array);