Articles of uguale a

Hashcode ed è uguale per Hashset

Per favore chiarisci il mio dubbio su Hashset. Considera il seguente codice, class Person { String name; Person(String n) { name=n; } public String getName() { return name; } @Override public boolean equals(Object arg0) { System.out.println(“in equals”); Person obj=(Person)arg0; System.out.println(“1st “+getName()); System.out.println(“2nd “+obj.getName()); if(this.getName().equals(obj.getName())) { return true; } return false; } @Override public int hashCode() […]

Perché non possiamo usare ‘==’ per confrontare due numeri float o double

Sto leggendo Efficace java di Joshua Bloch e nell’articolo 8: Rispetto al contratto generale quando si esegue l’override uguale , questa affermazione è scritta per i campi float, utilizzare il metodo Float.compare; e per i campi doppi, utilizzare Double.compare. Il trattamento speciale dei campi float e double è reso necessario dall’esistenza di Float.NaN, -0.0f e […]

Ciò che rende il confronto di riferimento (==) funziona per alcune stringhe in Java?

Ho le seguenti linee di codici per confrontare String. str1 non è uguale a str2, che è comprensibile dal momento che confronta il riferimento all’object. Ma allora perché s1 è uguale a s2? String s1 = “abc”; String s2 = “abc”; String str1 = new String(“abc”); String str2 = new String(“abc”); if (s1==s2) System.out.println(“s1==s2”); else […]

Perché “true” == true mostra false in JavaScript?

MDC descrive l’operatore == come segue : Se i due operandi non sono dello stesso tipo, JavaScript converte gli operandi quindi applica un confronto rigoroso. Se uno degli operandi è un numero o un booleano, gli operandi vengono convertiti in numeri, se ansible; altrimenti se uno degli operandi è una stringa, l’altro operando viene convertito […]

Come verificare rapidamente se due oggetti di trasferimento dati hanno proprietà uguali in C #?

Ho questi oggetti per il trasferimento dei dati: public class Report { public int Id { get; set; } public int ProjectId { get; set; } //and so on for many, many properties. } Non voglio scrivere public bool areEqual(Report a, Report b) { if (a.Id != b.Id) return false; if (a.ProjectId != b.ProjectId) return […]

Utilizzo dell’operatore == in Java per confrontare gli oggetti wrapper

Sto leggendo SCJP Java 6 di Kathy Sierra e Bert Bates e questo libro mi confonde molto. Nella pagina 245 si indica che il seguente codice qui sotto. Integer i1 = 1000; Integer i2 = 1000; if(i1 != i2) System.out.println(“different objects”); //Prints output different objects Quindi nella pagina successiva hanno il seguente codice Integer i3 […]

Come dovrebbero essere implementati equals e hashcode quando si usano JPA e Hibernate

Come dovrebbero essere implementati in Hibernate gli equals e gli hashcode della class del modello? Quali sono le insidie ​​comuni? L’implementazione predefinita è abbastanza buona per la maggior parte dei casi? Ha senso usare le chiavi aziendali? Mi sembra piuttosto difficile riuscire a lavorare correttamente in ogni situazione, quando vengono presi in considerazione i recuperi […]

Comprensione del funzionamento di equals e hashCode in una HashMap

Ho questo codice di prova: import java.util.*; class MapEQ { public static void main(String[] args) { Map m = new HashMap(); ToDos t1 = new ToDos(“Monday”); ToDos t2 = new ToDos(“Monday”); ToDos t3 = new ToDos(“Tuesday”); m.put(t1, “doLaundry”); m.put(t2, “payBills”); m.put(t3, “cleanAttic”); System.out.println(m.size()); } } class ToDos{ String day; ToDos(String d) { day = d; […]

perché equals () metodo quando abbiamo == operatore?

Quando vedo l’implementazione del metodo equals() non fa altro che lo stesso di == . Quindi la mia domanda è: qual è stata la necessità di avere questo come metodo separato quando abbiamo un operatore == che fa lo stesso lavoro?

Qualsiasi motivo per preferire getClass () su instanceof durante la generazione di .equals ()?

Sto usando Eclipse per generare .equals() e .hashCode() , e c’è un’opzione etichettata “Use” instanceof “per confrontare i tipi”. L’impostazione predefinita è deselezionare questa opzione e utilizzare .getClass() per confrontare i tipi. C’è qualche ragione per cui preferire .getClass() su instanceof ? Senza usare instanceof : if (obj == null) return false; if (getClass() != […]