In Java, qual è la differenza tra equals e compareTo quando si comparano due BigDecimal?
In Java La differenza c’è ed è sostanziale. Il metodo equals effettua un confronto tra oggetti. Ad esempio:
Bigdecimal b1 = new BigDecimal(1);Bigdecimal b2 = new BigDecimal(1.00);System.out.println(b1.equals(b2));
In questo caso l’istruzione alla riga 3, stampera’ a video il valore false, cioè confrontando i due oggetti, la differenza sta nel fatto che pur essendo uguali nel valore sono diversi nella precisione o scala. Da qui si intuisce che il metodo equals confronta oggetti e non solo valori.
Il metodo compareTo confronta solo i valori di due oggetti in questo caso:
Bigdecimal b1 = new BigDecimal(1);Bigdecimal b2 = new BigDecimal(1.00);System.out.println(b1.compareTo (b2));
l’istruzione alla riga 3, stampera’ a video il valore true. Cioè sono stati comparati solo i valori numerici.