Site icon Antonio Lamorgese

In Java, qual è la differenza tra equals e compareTo quando si comparano due BigDecimal?

Java jre e compareTo

Override ed implementazione alternativa del metodo equals() mediante l'utilizzo di toString() ed equals() della classe String.
di Antonio Lamorgese

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.

Java String Comparison Tutorial (Equals vs == in Java)
Comparazione stringhe in Java
Exit mobile version