java - long转int,保持positive/negative/0

标签 java integer long-integer

我想用 Long 实现一个 java.util.Comparator:

new Comparator<Long>() {
    public int compare(Long l1, Long l2) {
        // (*)
    }
}

我有一个运算符 ?: 的解决方案:

return l1==l2 ? 0 : (l1>l2 ? 1 : -1);

但是不知道有没有其他的实现方式。

(我正在尝试 return (int)(l1-l2),但它不正确)。

最佳答案

这很简单 - Long 本身提供了一个实现:

public int compare(Long l1, Long l2) {
    return l1.compareTo(l2);   
}

另一方面,那时我完全不确定您为什么要使用自定义比较器...

编辑:如果您实际上比较long值并且您使用的是Java 1.7,您可以使用Long.compare(long, long)。否则,继续您当前的实现。

关于java - long转int,保持positive/negative/0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106651/

相关文章:

java - 在多个进程中使用 sqlitejdbc

Java循环遍历具有子文件夹的文件夹中的同名文件

java - Tomcat 上的 Alfresco 部署

iphone - 递增属性 int (self.int++)

c++ - 我试图从欧拉计划中获得最大的主要因素

java - 通过 Searchable xml 配置设置 Android 搜索小部件选项

c++ - 添加两个字符时为什么没有整数溢出?

javascript - 只返回数字并从 JavaScript 中的现有数组中删除字符串?

java - 使用位操作将 Byte[] 转换为 Long

java - 将字符串数组转换为长数组