# HashMap nach values sortieren



## jollyroger (31. Mai 2006)

Hi, 

ich schreibe gerade an einer Funktion die folgendes macht:

- sie nimmt einen Text als String entgegen
- und speichert für jedes Wort das in diesem Text vorkommt wie oft es in diesem Text vorkommt
- das ganze wird in einer Hashmap gespeichert, der key ist das Wort selbst und der value wie oft es im Text vorkommt


```
public void calcWordsStatForSingleDoc(String pRfqText) {
	
                String wordRegex = "\\b[a-zöäüß]+\\b";
		Pattern wordPattern = Pattern.compile(wordRegex);
		Matcher wordMatcher = wordPattern.matcher(pRfqText);
		
		while(wordMatcher.find()){
			
			if(wordCount.containsKey(wordMatcher.group())){
				
				wordCount.put(wordMatcher.group(), new Integer(((Integer)wordCount.get(wordMatcher.group())).intValue()+ 1 ));
			}
			else{
				wordCount.put(wordMatcher.group(), new Integer(1));
			}
		}
		
	}
```

Nun möchte ich wissen welche Worte am häufigsten vorkommen, mit anderen Worten, ich möchte den Hash nach values sortiert haben.

Wie könnte ich das machen?

Klar könnte ich mir auch mit keySet() alle keys zurückliefern lassen, dann über den Hash laufen, das Maximum extrahieren, in eine neue Liste schreiben usw, etc. aber das muss doch auch eleganter gehen, oder?

Danke für alle Tips im voraus!


----------



## meez (31. Mai 2006)

Nein..geht nicht eleganter, wenn du die Keys dazu erhalten willst...
Mach doch ne eigene Innerclass für das ganze, implementier Comparable und un Speicher die Objeckte in einer Liste...


----------



## Leroy42 (1. Jun 2006)

meez hat gesagt.:
			
		

> Objeckte


Gehörst du auch zu denen, die sich nicht so richtig entscheiden können?

Das ist ja fast so amüsant, als wie Leute die sich nicht zwischen als
und wie entscheiden können.  :bae: 

(Jetzt mach mir mein Gelästere aber nicht durch einen
Hinweis auf simplen Tippfehler kaputt   )


----------

