Ho un'applicazione che visualizza una raccolta di oggetti in righe, un oggetto = una riga. Gli oggetti sono memorizzati in una HashMap. L'ordine delle righe non influisce sulla funzionalità dell'applicazione (ecco perché è stata usata una HashMap invece di una collezione ordinabile).L'ordine degli elementi in una HashMap differisce quando lo stesso programma viene eseguito in JVM5 rispetto a JVM6
Tuttavia, ho notato che la stessa applicazione viene eseguita in modo diverso quando viene eseguita utilizzando due diverse versioni di Java Virtual Machine. L'applicazione viene compilata utilizzando JDK 5 e può essere eseguita utilizzando runtime di Java 5 o Java 6, senza alcuna differenza funzionale.
L'oggetto in questione ha la priorità su java.lang.Object#hashCode()
e ovviamente è stata prestata attenzione a seguire il contratto specificato nell'API Java. Ciò è evidenziato dal fatto che appaiono sempre nello stesso ordine in ogni esecuzione dell'applicazione (nello stesso runtime Java).
Per motivi di curiosità, perché la scelta del runtime Java influisce sull'ordine?
('LinkedHashMap' può darti un ordine coerente.) –