Botre Posted May 5, 2016 Share Posted May 5, 2016 A hasmap is used. A hashmap does not guarantee order. You referenced the Java doc's iterator as a reference where it says "Iterator does not guarantee order". Well the same documentation in the Hashmap section says the exact same thing for Hashmap. public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, and permits null values and the null key. (The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.) This class makes no guarantees as to the order of the map The Entry array backing the map does not respect the order of insertion because elements are inserted based on a hash of their hash value. The reason it can't guarantee any other kind of order is because of hash collision (which is pretty much unavoidable). Come to thing of it I'm actually not even sure anymore where the non-guarantee of order is introduced.. at insertion or retrieval.. you may have been right, eh time to hit the books I guess x) Peace (dis thread hijack tho) Quote Link to comment Share on other sites More sharing options...
sampla Posted May 6, 2016 Author Share Posted May 6, 2016 The Entry array backing the map does not respect the order of insertion because elements are inserted based on a hash of their hash value. The reason it can't guarantee any other kind of order is because of hash collision (which is pretty much unavoidable). Come to thing of it I'm actually not even sure anymore where the non-guarantee of order is introduced.. at insertion or retrieval.. you may have been right, eh time to hit the books I guess x) Peace (dis thread hijack tho) I'm fine as long as the thread gets some attention. 1 Quote Link to comment Share on other sites More sharing options...