世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

之所以要特意指出compare,希望大家仔细看一下我的注释,compare的返回结果,有的是直接相减获得的,如byte、short;有的是根据逻辑判断获得的,如int、long、float、double。根据相减获得的是相减的结果,根据对比获得的返回的是1、-1、0。所以在实际使用时,直接通过>0、<0、==0判断兼容性最好,不要直接通过:==1、==-1判断。

/*** byte compare* @param b1 byte* @param b2 byte* @return int >0, <0, ==0*/public int compare(byte b1, byte b2) {return Byte.compare(b1, b2);}/*** short compare* @param s1 short* @param s2 short* @return int >0, <0, ==0*/public int compare(short s1, short s2) {return Shorts.compare(s1, s2);}/*** int compare* @param i1 int* @param i2 int* @return int -1, 1, 0*/public int compare(int i1, int i2) {return Ints.compare(i1, i2);}/*** long compare* @param l1 long* @param l2 long* @return int -1, 1, 0*/public int compare(long l1, long l2) {return Longs.compare(l1, l2);}/*** float compare* @param f1 float* @param f2 float* @return int -1, 1, 0*/public int compare(float f1, float f2) {return Floats.compare(f1, f2);}/*** double compare* @param d1 double* @param d2 double* @return int -1, 1, 0*/public int compare(double d1, double d2) {return Doubles.compare(d1, d2);}/*** boolean compare true - bigger* @param b1 boolean* @param b2 boolean* @return int -1, 1, 0*/public int compare(boolean b1, boolean b2) {return Booleans.compare(b1, b2);}/*** char compare* @param c1 char* @param c2 char* @return int >0, <0, ==0*/public int compare(char c1, char c2) {return Chars.compare(c1, c2);}

hbw-utils - 关于guava和jdk的compare方法相关推荐

  1. [Google Guava] 1.3-常见Object方法

    原文链接 译者: 沈义扬 equals 当一个对象中的字段可以为null时,实现Object.equals方法会很痛苦,因为不得不分别对它们进行null检查.使用Objects.equal帮助你执行n ...

  2. java to对象_java中同类对象之间的compareTo()和compare()方法对比分析

    首先我们都知道java中的比较都是同一类对象与对象之间的比较,就好像现实生活中比较人和人的年龄一样,你不会去把人的年龄和人的身高来比较,这显然是没有意义的. java中同类对象之间的比较又分为两种,基 ...

  3. [Java] Comparator接口/compare方法的介绍与使用

    上一篇文章讲了Comparable接口的使用,建议搭配食用. 背景 在实现Comparable接口的前提下,对象间已经有一套可适用的大小比较规则/排序规则了.然而某些情况下,由compareTo定义的 ...

  4. eclipse 启动 找不到 JRE JDK的解决方法

    今天在启动eclipse的时候哦出现点问题: hadoop@steven:~/eclipse/eclipse$ ./eclipse No protocol specified No protocol ...

  5. 安装安卓SDK和JDK的简便方法

    安装安卓SDK和JDK的简便方法 直接在VS的安装程序里选:使用.NET的移动开发,其中就包括了安卓SDK,JAVA SE等 另外:自己手动安装SDK时,不要选模拟器相关的东西,太大了,如果每个版本都 ...

  6. linux jdk免安装配置,生产环境免安装jdk的使用方法

    以下为<生产环境免安装jdk的使用方法>的无排版文字预览,完整格式请下载 下载前请仔细阅读文字预览以及下方图片预览.图片预览是什么样的,下载的文档就是什么样的. 使用流程 一.概述 医院的 ...

  7. 使用Spring AOP和Guava速率限制器的节气门方法

    外部服务或API可能有使用限制,或者它们无法处理请求负载而不会失败. 这篇文章解释了如何创建一个基于Spring Framework的方面,该方面可以用来限制使用Guava速率限制器的任何建议方法调用 ...

  8. JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...

    import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字 ...

  9. 集合中的compare方法返回值说明

    compare()方法,有两个参数自定义为 o1 和 o2,默认返回 0,可修改方法体中的内容,返回不同的参数值(整型) o1待比较的参数,o2与其比较的参数,即之前已经排序好的数组或集合的最后一个元 ...

最新文章

  1. Flex布局教程(来源:阮一峰)
  2. jvm系列(十):如何优化Java GC「译」
  3. ansible2.4 api调用
  4. 双指针算法(三):力扣【167.两数之和 | 经典例题
  5. 解决 git pull 报错 fatal: refusing to merge unrelated histories
  6. 有了这个算法,图像上文字擦除再也用不上PS了
  7. Android相关笔记-4
  8. python win32转pdf 横版_Python调用Win32com实现Office批量转PDF
  9. geekbench 3 android,Geekbench列表声称Xperia 3将包含12GB RAM并运行Android 10
  10. 前端----CSS层叠样式表
  11. Mac制作windows10安装U盘
  12. python判断正数负数_python 负数变正数
  13. 改文件777的php,服务器文件目录权限777修改方法
  14. python concat时报错‘InvalidIndexError: Reindexing only valid with uniquely valued Index objects’
  15. 51单片机调整时钟Proteus仿真
  16. 吕 思 伟 ---- 潘 爱 民 :: ATL 介 绍( 一) (转)
  17. 选购电脑cpu 酷睿 区别 GPU选择
  18. 如何删除php空间,wps云文档空间满了怎么清除
  19. PMP项目管理——整合管理之制订项目管理计划
  20. Compose跨平台又来了,这次能开发iOS了

热门文章

  1. 如何将u盘(启动盘)重新格式化为NTFS格式
  2. python读取本地foxmail_用Python读取Foxmail导出的邮件
  3. Unity导入package简单操作流程
  4. 使用Google Analytics统计用户留存率
  5. 对计算机硬件以及操作系统的一些了解
  6. 2020年中国空气压缩机行业发展现状、竞争格局及未来发展趋势分析,国内市场竞争激烈,市场规模将破600亿元「图」
  7. 打开Jupyter报错:EnvironmentLocationNotFound: Not a conda environment
  8. android nfc settimeout,微信小程序API NFC·NfcA标签
  9. 鸟哥的linux私房菜运维篇,鸟哥的Linux私房菜学习笔记之SAMBA
  10. 一整只烧鹅价格=烧鹅上庄价格+烧鹅下庄价格这个关系不因货币变掉而变