【问题标题】:How to add to SortedSet items from an Array?如何从数组中添加到 SortedSet 项目?
【发布时间】:2010-06-28 22:33:23
【问题描述】:

我有一个这样定义的 SortedSet:

SortedSet<RatedMessage> messageCollection = new TreeSet<RatedMessage>(new Comp());

我有一个 RatedMessage[] 数组

我不得不使用数组,因为集合错过了序列化功能,现在我需要重新构造它。

有没有一种快速的方法可以将数组中的所有项目再次添加到集合中?

【问题讨论】:

    标签: java arrays serialization treeset sortedset


    【解决方案1】:
    Collections.addAll(messageCollection, array);
    

    功能与迈克尔的答案相同,但正如 javadoc 所说:

    将所有指定的元素添加到 指定的集合。元素 可以单独指定添加 或作为一个数组。这种行为 方便方法与 那 c.addAll(Arrays.asList(elements)), 但是这种方法很可能会运行 在大多数情况下明显更快 实现。

    【讨论】:

    • 哦,干得好。 “这种便捷方法的行为与 c.addAll(Arrays.asList(elements)) 的行为相同,但在大多数实现中,这种方法的运行速度可能要快得多。”
    • 就像我添加相同的报价一样。 =)
    【解决方案2】:

    Set 有一个addAll 方法,但它只需要一个集合,所以你需要先转换数组:

    RatedMessage[] arr;
    messageCollection.addAll(Arrays.asList(arr));
    

    【讨论】:

      【解决方案3】:

      您可以使用 Arrays.asListTreeSet

      RatedMessage[] 数组添加到 SortedSet
      String RatedMessage[]={"1","2","3","1","4","3"};
      SortedSet lst= new TreeSet(Arrays.asList(RatedMessage));
      Iterator it = lst.iterator();
              while(it.hasNext())
              {
                  Object ob= it.next();
                  System.out.println(ob);
              }
      

      【讨论】:

        猜你喜欢
        • 2021-10-03
        • 2011-07-01
        • 1970-01-01
        • 2015-01-02
        • 2010-11-24
        • 1970-01-01
        • 2013-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多