今天看到这样的用法用于排序:
Integer.compare
Arrays.sort(intervals, (x, y) -> Integer.compare(x[0], y[0]));
java.lang包的Integer类的compare()方法比较作为参数给出的两个整数值(x,y),如果(x == y)则返回零,如果(x <y)则返回小于零,如果(x> y),则返回大于零的值。
public static void main(String args[])
{
int a = 10;
int b = 20;
// as 10 less than 20, Output will be a value less than zero
System.out.println(Integer.compare(a, b));
int x = 30;
int y = 30;
// as 30 equals 30, Output will be zero
System.out.println(Integer.compare(x, y));
int w = 15;
int z = 8;
// as 15 is greater than 8, Output will be a value greater than zero
System.out.println(Integer.compare(w, z));
}
输出:-1 0 1
Integer.compareTo()
Java中Integer.compareto方法,用于在数值上比较两个Integer对象,2个必须都是Integer对象才能进行对比。
//Integer的compareTo方法,底层依据的是compare方法
public int compareTo(Integer anotherInteger)
{
//实际上Integer的比较是通过Integer中包括的整数来比较的
return compare(this.value, anotherInteger.value);
}
public static int compare(int x, int y)
{
//如果a比b小,那么返回-1,相等就是0,否则就是1
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
例子:
public class IntegerCompareToDemo {
public static void main(String args[]) {
Integer b = 5;
Integer c = 15;
System.out.println(b.compareTo(c)); //输出-1
b = 15;
System.out.println(b.compareTo(c)); //输出0
b = 20;
System.out.println(b.compareTo(c)); //输出1
}
}