# mit for each über Map iterieren   :bahnhof:



## Guest (26. Feb 2008)

Hallo, 

wie kann ich denn mit dieser Syntax 


```
for (iterable_type iterable_element : iterable) {
		
	}
```

über solch eine Map iterieren ?


```
Map<Long, CustomerValues> customers = getAllCustomerValues();
```


----------



## SlaterB (26. Feb 2008)

über ne Map gar nicht,
du kannst aber über die Keys, Values oder Entries itererieren,
schau dir die API an, es gibt für alle drei eine Art 'getXYSet'-Operation, und über Sets kann man iterieren


----------



## matches (26. Feb 2008)

Du kannst folgendes machen:


```
Map<String, Object> customers = new HashMap<String, Object>();

Set<String> keys = customers.keySet();
    
for (String singleKey : keys) {
  System.out.println(customers.get(singleKey));
}
```

Du holst dir von deiner Map alle Keys und iterierst mit einer for-each Schleife über diese.


----------



## Janus (26. Feb 2008)

um vollständig über eine map zu iterieren ist Map#entrySet normalerweise die beste wahl.

```
Map<Foo, Bar> map = new HashMap<Foo, Bar>();
for( Map.Entry<Foo, Bar> entry : map.entrySet() )
{
  Foo foo = entry.getKey();
  Bar bar = entry.getValue();
}
```


----------

