1、int、double无法使用compareTo方法,可以直接用 ><= 来比较
2、用来比较Integer、Double、BigDecimal、Date类型的值
前大于后 = 1,
前等于后 = 0,
前小于后 = -1
3、 用来比较String的值,比较的是ASCII值,ASCII 表 | 菜鸟教程
4、测试代码
/**
* int、double无法使用compareTo方法,可以直接比较
*/
//int int1 = 2;
//int int2 = 3;
//System.err.println(int1.compareTo(int2));
//System.err.println(int1 > int2);
/**
* 比较Integer、Double、BigDecimal、Date类型的值
* 前大于后 = 1
* 前等于后 = 0
* 前小于后 = -1
*/
//比较Integer的值
Integer i1 = 2;
Integer i2 = 3;
System.out.println(i1.compareTo(i2)); //结果为-1
//比较Double的值
Double d1 = 1.0;
Double d2 = 2.3;
System.out.println(d1.compareTo(d2)); //结果为-1
//比较BigDecimal的值
BigDecimal integralValueSum = new BigDecimal("10");
BigDecimal grpPermBigDecimal = new BigDecimal("10");
System.out.println(integralValueSum.compareTo(grpPermBigDecimal)); //结果为0
//比较Date的值
Date date1 = DateTimeUtil.strToDate("2023-05-06","yyyy-MM-dd");
Date date2 = DateTimeUtil.strToDate("21023-08-06","yyyy-MM-dd");
System.out.println(date1.compareTo(date2)); //结果为-1
/**
* 比较String的值
*/
//1、如果两个字符的长度一样,则比较ASCII值
String s1 = "A"; //A:ASCII值65
String s2 = "a"; //a:ASCII值97
System.out.println(s1.compareTo(s2)); //结果为-32
//2、如果如果两个字符的长度一样,则比较第一个不同的位置对应自付的ASCII值
String ss1 = "bcvAert"; //A:ASCII值65
String ss2 = "bcvaoiu"; //a:ASCII值97
System.out.println(ss1.compareTo(ss2)); //结果为-32
//3、如果两个字符的长度不一样,则会返回两个字符串的长度差值。
String sss1 = "Abcd";
String sss2 = "Abcdtttttttt";
System.out.println(sss1.compareTo(sss2)); //结果为-8
//4、如果想使用compareTo()来比较字符串类型的日期也是可以的,但是长度必须一致,由于是String类型,比较的依然是第一个不同的字符的ASCII值。
String ssss1 = "2023-05-05";
String ssss2 = "2023-12-05";
System.out.println(ssss1.compareTo(ssss2));//结果为-1