将集合转移到树集而不是返回集合
transfer collection to treeset and than back to collection
我有 Collection<String> collection
,我想删除重复项,
(我想使用树集来删除重复项)
那么我怎样才能将该集合转移到 TreeSet 而不是 return 它又回到集合中呢?
提前致谢。
乔治
Collection
不是具体类型:它是一个接口。
所以你不能直接实例化它。
现在 TreeSet
是一个 Collection
实现,您可以将 TreeSet
对象分配给 Collection
变量。对于操作 Collection
的客户端来说,这将是透明的。
足迹
您还应该知道 Set
比 List
的有序集合具有更重要的足迹。因此,如果 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]
我有 Collection<String> collection
,我想删除重复项,
(我想使用树集来删除重复项)
那么我怎样才能将该集合转移到 TreeSet 而不是 return 它又回到集合中呢?
提前致谢。 乔治
Collection
不是具体类型:它是一个接口。
所以你不能直接实例化它。
现在 TreeSet
是一个 Collection
实现,您可以将 TreeSet
对象分配给 Collection
变量。对于操作 Collection
的客户端来说,这将是透明的。
足迹
您还应该知道 Set
比 List
的有序集合具有更重要的足迹。因此,如果 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]