我这样做:
(String[]) myTreeSet.toArray();
但是这在运行时给了我一个ClassCastException。
我唯一能想到的就是先制作一个数组然后遍历myTreeSet中的每个元素并将其添加到数组中。似乎必须有比这更好的方法。我应该或者应该这样做吗?
感谢。
答案 0 :(得分:19)
String[] result = myTreeSet.toArray(new String[myTreeSet.size()]);
答案 1 :(得分:3)
使用toArray()
时会发生以下情况:使用new Object[size]
分配新的Object数组,数组中的每个元素都将引用一个字符串元素。即使实际指向字符串,它也是一个类型为Object
的数组。
使用toArray(T[] a)
时会发生以下情况:使用
java.lang.reflect.Array
.newInstance(a.getClass().getComponentType(), size)
并且数组中的每一个都将引用您的某个字符串,因为a.getClass().getComponentType
将在您的情况下返回String.class
。这次,它是一个String类型的数组。