Articles of hashcode

In che modo la JVM garantisce che System.identityHashCode () non cambierà mai?

In genere l’implementazione predefinita di Object.hashCode() è una funzione Object.hashCode() assegnata dell’object in memoria (sebbene questo non sia richiesto dal JLS ). Dato che la VM smuove gli oggetti in memoria, perché il valore restituito da System.identityHashCode() non cambia mai durante la vita dell’object? Se si tratta di un calcolo “one-shot” (l’ hashCode dell’object viene […]

qual è la differenza tra == operator ed equals ()? (con hashcode () ???)

Stavo imparando hashcode in modo più approfondito e ho capito che: 1. Se si esegue l’override di equals (), è necessario sovrascrivere anche hashcode (). 2. Per trovare se 2 oggetti sono lo stesso object, utilizzare l’operatore == Dati questi 2 fattori, in Java stavo assumendo che quando l’ == operator è usato per confrontare […]

Buona sostituzione di GetHashCode () per gli oggetti List of Foo che rispettano l’ordine

EnumerableObject : IEnumerable avvolge una List Se EnumerableObject a.SequenceEquals( EnumerableObject b) , allora sono uguali. Pertanto, è necessario implementare un GetHashCode . Il problema è che XORing ogni elemento nell’elenco restituirà lo stesso codice hash per qualsiasi elenco con tutti e solo gli stessi elementi, indipendentemente dall’ordine. Questo va bene in termini di funzionamento, ma […]

Come creo un HashCode in .net (c #) per una stringa che è sicura da memorizzare in un database?

Per citare linee guida e regole per GetHashCode di Eric Lippert: Regola: i consumatori di GetHashCode non possono fare affidamento sulla loro stabilità nel tempo o attraverso le appdomain Supponiamo che tu abbia un object Cliente che abbia una serie di campi come Nome, Indirizzo e così via. Se si effettuano due tali oggetti con […]

.NET identificatore di object univoco

C’è un modo per ottenere un identificatore univoco di un’istanza? GetHashCode() è lo stesso per i due riferimenti che puntano alla stessa istanza. Tuttavia, due diverse istanze possono (abbastanza facilmente) ottenere lo stesso codice hash: Hashtable hashCodesSeen = new Hashtable(); LinkedList l = new LinkedList(); int n = 0; while (true) { object o = […]

Qual è un primo sensibile per il calcolo dell’hashcode?

Eclipse 3.5 ha una funzione molto interessante per generare funzioni hashCode () di Java. Ad esempio, genererebbe (leggermente abbreviato 🙂 class HashTest { int i; int j; public int hashCode() { final int prime = 31; int result = prime + i; result = prime * result + j; return result; } } (Se si […]

E ‘ansible in Java fare qualcosa come Comparator ma per implementare custom equals () e hashCode ()

Ho una matrice di oggetti e voglio concatenarlo con un’altra serie di oggetti, tranne che gli oggetti che hanno gli stessi ID. Gli oggetti sono usati in molti punti del sistema e non hanno il codice hash o gli equals implementati. Quindi non voglio implementare hashCode() ed equals() , perché ho paura di rompere qualcosa […]

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é la cache hashCode () di String non è 0?

Ho notato nel codice sorgente Java 6 per String che hashCode memorizza solo valori diversi da 0. La differenza di prestazioni è esibita dal seguente snippet: public class Main{ static void test(String s) { long start = System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { s.hashCode(); } System.out.format("Took %d ms.%n", System.currentTimeMillis() – […]

Come si ottiene il “riferimento all’object” di un object in java quando toString () e hashCode () sono stati sovrascritti?

Vorrei stampare il “riferimento all’object” di un object in Java per scopi di debug. Vale a dire che l’object è lo stesso (o diverso) a seconda della situazione. Il problema è che la class in questione eredita da un’altra class, che ha cancellato sia toString () che hashCode () che di solito mi danno l’id. […]