【问题标题】:java Converting a set to an array [duplicate]java将集合转换为数组[重复]
【发布时间】:2014-02-08 00:55:01
【问题描述】:

我正在尝试将我的字符串集转换为字符串数组,以便我可以一个一个地对它们进行操作。有没有更好的方法或者转换为数组的好方法?但是,当我尝试转换为如下所示的数组时,我会收到错误,因为它认为它不会始终是传入的字符串。希望得到一些指针。

Set<String> s;

s.add("a");
s.add("b");
String[] item =  s.toArray();

【问题讨论】:

  • 你得到错误的原因是因为toArray没有参数返回一个Object[]。您需要给它一个参数,甚至是像new String[0] 这样的虚拟参数,以便让它返回一个其他东西的数组。请参阅 javadoc here

标签: java


【解决方案1】:

您不必为了对元素进行操作而将Set 转换为数组。您可以直接迭代元素

Set<String> s = new HashSet<>();
....
for (String item : s)
{
    do something...
}

【讨论】:

    【解决方案2】:
    so I can operate on them one by one
    

    您不必为此将其转换为数组。

    改为使用 for-each 循环或迭代器进行迭代。

    【讨论】:

      【解决方案3】:

      你可以这样做

      String[] item = s.toArray(new String[s.size()]);
      

      根据 Java doc - toArray 函数(这是您需要的)

      toArray() 返回一个包含此列表中所有元素的数组 以适当的顺序(从第一个元素到最后一个元素)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 2018-02-28
        • 2010-10-23
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多