# Häufigkeit der Elemente in einer ArrayList zählen



## Guest (18. Apr 2008)

Hi,

ich habe eine ArrayList:

```
ArrayList<Integer> list = new ArrayList<Integer>();
```
Die Liste enthält verschiedene Integerwerte:

```
3,3,2,3,1,7,3,2,7,4,5...
```

Wie kann ich möglichst geschickt die Häufigkeit der einelnen Werte ermitteln, also so:

```
1: 1, 2: 2, 3: 4, 4: 1, 5: 1, 6: 0, 7: 2 ...
```
Gibts hierfür eine einfachere Lösung als eine doppelte for-Schleife die für jeden Wert die gesamte Liste durchläuft?


----------



## SlaterB (18. Apr 2008)

sortiere die Liste vorher, dann brauchst du sie nur einmal durchlaufen,

oder durchlaufe die unsortierte Liste nur einmal und merke dir in einer Map die Anzahl pro Zahl, 
wenn es nur kleine Zahlen sind und du das Maximum kennst, dann kannst du auch ein Array statt einer Map verwenden:

Liste durchlaufen: aktuell eine 7 gefunden -> zaehlArray[6]++;


----------



## clemson (19. Apr 2008)

Oder du verwendest die Apache Commons Collections API: CollectionUtils#getCardinalityMap


----------

