世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
之所以要特意指出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);
}