使用toArray方法将TreeSet对象转换为数组,但是出现错误:
Object[] cannot be converted to Integer[]
代码如下:
public static void main (String[] args) {
TreeSet elems = new TreeSet<Integer>();
int[] elemsToAdd = {1,2,3,4};
for(int i = 0; i < elemsToAdd.length; i++){
elems.add(elemsToAdd[i]);
}
Integer[] elemsArray = elems.toArray(new Integer[elems.size()]);
}
我已经在其他线程中搜索了答案,但是所有这些线程都建议使用带有Integer数组的toArray方法作为参数,但是我的仍然会抛出错误。
答案 0 :(得分:2)
那是由于您使用了原始类型。将elems
定义为原始TreeSet
时,elems.toArray
返回Object[]
,而不是Integer[]
。
更改
TreeSet elems = new TreeSet<Integer>();
到
TreeSet<Integer> elems = new TreeSet<Integer>();
答案 1 :(得分:0)
Erans Answer解决了错误,但我也想贡献自己的力量
TreeSet<T>
可以接受任何对象类型,使其为TreeSet<Integer>
可以将Integer
值放入TreeSet中,这是定义它的方式
TreeSet<Integer> elems = new TreeSet<>();
您正在使用一个常规循环,在您的案例工作示例中,该循环可以用for-for替换
for (int anElemsToAdd : elemsToAdd) {
elems.add(anElemsToAdd);
}
最后,您无需定义大小为new Integer[elems.size()]
的{{1}}
在所有更改之后,这是最终结果
elems.toArray(new Integer[0])