将集合转移到树集而不是返回集合

transfer collection to treeset and than back to collection

我有 Collection<String> collection,我想删除重复项, (我想使用树集来删除重复项) 那么我怎样才能将该集合转移到 TreeSet 而不是 return 它又回到集合中呢?

提前致谢。 乔治

Collection 不是具体类型:它是一个接口。 所以你不能直接实例化它。
现在 TreeSet 是一个 Collection 实现,您可以将 TreeSet 对象分配给 Collection 变量。对于操作 Collection 的客户端来说,这将是透明的。

足迹

您还应该知道 SetList 的有序集合具有更重要的足迹。因此,如果 Collection 包含许多元素,则使用 List 可能有意义,因为客户端将操纵 Collection 变量。

已订购

A TreeSet 使用元素的自然顺序(或 Comparator 中的哪一个)而不是 Collection 中元素的 appearance/insertion 的顺序.
因此,如果您使用 TreeSet,元素的顺序可能会改变。如果 Collection 被排序为一个序列并且你想维护它,使用 LinkedHashSet 更合适。

您可以按照下面给出的步骤简单地实现您的要求 -

       Collection<String> collection = new ArrayList<>();

        collection.add("data1");
        collection.add("data1");
        collection.add("data2");
        collection.add("data3");

        Set<String> set = new TreeSet<>();

        set.addAll(collection);
        collection.clear();
        collection.addAll(set);
        System.out.println(collection);

它将删除重复的 data1 并给出输出:

[data1, data2, data3]