9

For example, I can loop an ArrayList like this

for (String temp : arraylist)

Can I loop a HashMap by using the similar method?

2
  • 6
    Why don't you just try? Commented Jan 9, 2015 at 19:15
  • Yes.. Commented Jan 9, 2015 at 19:16

6 Answers 6

19

You can iterate over the keys, entries or values.

for (String key : map.keySet()) {
    String value = map.get(key);
}

for (String value : map.values()) {
}

for (Map.Entry<String,String> entry : map.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}

This is assuming your map has String keys and String values.

Sign up to request clarification or add additional context in comments.

1 Comment

you can even do for (String temp: map.values()
8

You can't directly loop a Map like that in Java.

You can, however, loop the keys:

for (SomeKeyObject key : map.keySet())

The values:

for (SomeValueObject value : map.values())

Or even its entries:

for (Map.Entry<SomeKeyObject, SomeValueObject> entry : map.entrySet())

Comments

2

you can do

for (String key : hashmap.keySet()) {
    String value = hashmap.get(key);
}

Comments

1

You can do it by using an Iterator http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html.

    HashMap<String, String> yourHashMap = new HashMap<>();
    Iterator<Map.Entry<String, String>> it = yourHashMap.entrySet().iterator();
    while(it.hasNext()){
        it.next();
        System.out.println(yourHashMap.get(it));
    }

At first sight it might be tempting to use a for-loop instead of an Iterator, but

you will need an Iterator if you want to modify the elements in your HashMap while iterating over them!

When using a for-loop you cannot remove elements from your map while

 it.remove()

would work well in the above example.

Comments

1

Use this

map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));

Comments

0
public class IterableHashMap<T,U> extends HashMap implements Iterable
    {

        @Override
        public Iterator iterator() {
            // TODO Auto-generated method stub

            return this.keySet().iterator();
        }



    }



    public static void main(String[] args) {

        testA a=new testA();
        IterableHashMap test=a.new IterableHashMap<Object,Object>();
        for(Object o:test)
        {

        }
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.