【问题标题】:Java - Most efficient way to convert a TreeSet<String> into a String[]?Java - 将 TreeSet<String> 转换为 String[] 的最有效方法?
【发布时间】:2012-02-12 06:10:30
【问题描述】:

我正在这样做:

(String[]) myTreeSet.toArray();

但这在运行时给了我一个 ClassCastException。

我唯一能想到的就是先创建一个数组,然后遍历 myTreeSet 中的每个元素并将其添加到数组中。似乎必须有比这更好的方法。有没有或者我应该这样做?

谢谢。

【问题讨论】:

标签: java arrays string treeset


【解决方案1】:
String[] result = myTreeSet.toArray(new String[myTreeSet.size()]);

【讨论】:

【解决方案2】:

当使用toArray() 时,会发生以下情况:正在使用new Object[size] 分配一个新的对象数组,并且数组中的每个元素都将是对您的字符串元素之一的引用。即使实际上指向字符串,它也是一个类型为Object 的数组。

当使用toArray(T[] a) 时,会发生以下情况:正在使用分配一个新的 T 数组

java.lang.reflect.Array
              .newInstance(a.getClass().getComponentType(), size) 

并且数组中的每个都是对您的字符串之一的引用,因为a.getClass().getComponentType 在您的情况下将返回String.class。这一次,它是一个 String 类型的数组。

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2015-06-30
    • 2014-10-27
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多