I’m having a weird problem with HashMap in Android. I’m putting values into the hashmap which is of the form
HashMap <String,String> sample = new HashMap<String,String>();
However let’s say I’m putting the following values in the following order:
sample.put("ifi1", "video1");
sample.put("ifi2", "video2");
sample.put("ifi3", "video3");
sample.put("ifi4", "video4");
sample.put("ifi5", "video5");
sample.put("ifi6", "video6");
sample.put("ifi7", "video7");
sample.put("ifi8", "video8");
sample.put("ifi9", "video9");
This is just a simple example that is similar to what i have. I only have a bigger list in my actual code. However when I now try to print only the values, I get an unordered list as follows:
VIDEOS: video1
VIDEOS: video3
VIDEOS: video2
VIDEOS: video5
VIDEOS: video4
VIDEOS: video7
VIDEOS: video6
VIDEOS: video9
VIDEOS: video8
where in fact I’m expecting it to produces the following list:
VIDEOS: video1
VIDEOS: video2
VIDEOS: video3
VIDEOS: video4
VIDEOS: video5
VIDEOS: video6
VIDEOS: video7
VIDEOS: video8
VIDEOS: video9
Why is this, any idea?
That’s right. The
HashMapimplementation ofMapdoes not guarantee any order during iteration.If you want ordering based on insertion…
…have a look at
LinkedHashMap:If you want ordering based on the keys…
Use a
NavigableMaporSortedMapimplementation such as aTreeMap.