Get key from HashMap in Android by position or index

Thanks to @Pentium10 for this answer. And I little modified it according to my need.

String key="default";
Iterator myVeryOwnIterator = CHILD_NAME_DOB.keySet().iterator();
while(myVeryOwnIterator.hasNext()) {
     key=(String)myVeryOwnIterator.next();
     //String value=(String)meMap.get(key);
     }
Toast.makeText(viewEnterChildExp.getContext(), "Key: "+key , Toast.LENGTH_LONG).show();

I'm getting the last key element by this.

I'll update as soon I also get to find an easy way to key by index.


This way to get key....

public static String getHashMapKeyFromIndex(HashMap hashMap, int index){

    String key = null;
    HashMap <String,Object> hs = hashMap;
    int pos=0;
    for(Map.Entry<String, Object> entry : hs.entrySet())
    {
        if(index==pos){
            key=entry.getKey();
        }
        pos++;
    }
    return key;

}

Single line solution:

First note that the Java HashMap does not guarantee the order of entries. So each time you iterate over a HashMap, entries appear in different positions. You will need LinkedHashMap that guarantees the predictable iteration order.

Map<String, String> CHILD_NAME_DOB = new LinkedHashMap<>();

Get the key by index:

key = (new ArrayList<>(CHILD_NAME_DOB.keySet())).get(index)

Get the value by index:

CHILD_NAME_DOB.get(key)