java - 具有长值的 TreeSet 自定义比较器

标签 java long-integer comparator

我有一个TreeSet<MyObject>哪里MyObject有一个方法getID()

getID()方法返回 long我想用它来对 MyObject 进行排序TreeSet 的自定义比较器中的 s

Comparator<MyObject> comparator = new Comparator<MyObject>() {
    public int compare(MyObject a0, MyObject a1) {
        return a0.getID()-a1.getID();
    }

};
TreeSet<MyObject> set = new TreeSet<MyObject>(comparator);

但是方法compare必须返回int我正在比较 long s。有什么办法可以解决这个问题吗?

最佳答案

差异的大小并不重要,重要的是存在差异。

long a0long = a0.getID();
long a1long = a1.getID();
if (a0long < a1long)
{
    return -1;
}

return a0long == a1long ? 0 : 1;

关于java - 具有长值的 TreeSet 自定义比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24141688/

相关文章:

java - 如何创建混合比较器?

java - 使用 Comparable 和 Comparator 比较泛型类型

java - 使用java从外部网络连接MySQL

java - 如何以所需的时间格式获取 Joda Time 中的 Interval 或类似类?

json - fetch() 响应截断大数字

java - 从 long 类型获取字节的最快方法

Java 长时间运行的计时器正在被 GC 使用

java - RxJava Multithreading with Realm - 从不正确的线程访问 Realm

java - 获取没有 toString() 的枚举字符串

c++ - 为什么 C++ STL 容器使用 "less than"operator< 而不是 "equal equal"operator== 作为比较器?