可重排的Java集合,没有重复项

use*_*668 2 java sorting collections duplicates

我正在搜索sortable(我的意思是在初始化后排序,很多次使用Comparator)Java类集合没有重复.是否有更纯粹的解决方案,而不是编写不透明的代码,并阻止例如某些ArrayList添加另一个具有相同值的对象?

编辑1:我应该添加一些关于排序的解释.我需要使用不同的比较器(实现的多样性)多次对这组值进行排序.

Ara*_*yan 7

使用套装!常见的实现是HashSetTreeSet.后者在实现SortedSet时保留了项的顺序.

  • LinkedHashSet通常被认为是Set的最佳默认实现(请参阅Effective Java).http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashSet.html (2认同)

Nid*_*nan 6

Set Interface---->SortedSet Interface----->TreeSet Class
Set Interface---->HashSet Class
Set Interface---->LinkedHashSet Class
Run Code Online (Sandbox Code Playgroud)

你可以使用TreeSet.它将删除重复项.

TreeSet实现SortedSet接口,以便它对输入的元素进行排序

        SortedSet s=new TreeSet();
        s.add(12);
        s.add(12);
        s.add(1);
        s.add(56);
        s.add(6);
        s.add(47);
        s.add(1);
        System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

产量

[1, 6, 12, 47, 56]
Run Code Online (Sandbox Code Playgroud)