我正在尝试使用自定义排序功能来实现树集。我已经传递了保存排序逻辑的比较器对象。
import java.util.Comparator;
import java.util.TreeSet;
public class MySetWithCompr {
public static void main(String a[]){
TreeSet<String> ts = new TreeSet<String>(new MyComp());
ts.add("Test1");
ts.add("Test2");
ts.add("Test3");
ts.add("Test4");
System.out.println(ts);
}
}
class MyComp implements Comparator<String>{
@Override
public int compare(String str1, String str2) {
return str1.compareTo(str2);
}
}
上面的程序给出了以下输出
[Test1, Test2, Test3, Test4]
请建议如何实现比较器逻辑以使结果相反
Expected Result : [Test4, Test3, Test2, Test1]
最佳答案
如果您使用的是 Java 8,您可以简单地编写:
Set<String> ts = new TreeSet<>(new MyComp().reversed());
Java 8 之前(自 Java 5 起)具有相同的功能:
Set<String> ts = new TreeSet<String>(Collections.reverseOrder(new MyComp()));
关于java - 使用自定义排序功能实现 Treeset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142636/