Hi!
Bei der folgenden Aufgabe soll man Integerwerte aus einem txt File einlesen und daraus eine Statisik erstellen.
Einlesen ist kein Problem, aber wie kann ich die Werte sortieren bzw den Max und Min Wert heraus lesen ?
Ich hab mir das so vorgestellt:
Man erstellt eine Hashmap.
Der 1. Wert aus dem File wird eingelesen und als Schlüssel der Hashmap verwendet.
Dann wird der nächste Wert eingelesen.
Es wird geschaut ob der Wert schon als Key vorhanden ist, wenn ja, dann erhöhe den Wert um 1.
Wenn nein, dann wird der Wert als neuer Key angelegt und der Inhalt auf 1 gesetzt.
Somit weiss man wie oft jede Zahl vorgekommen ist.
Jetzt möchte ich aber gerne heraus finden, welcher Wert das Max und Min ist.
Ist die Lösung mit der Hashmap überhaupt gescheit ?
Ich habs als Array auch versucht, aber das ist glaub ich nicht ganz so praktisch.
Bei der folgenden Aufgabe soll man Integerwerte aus einem txt File einlesen und daraus eine Statisik erstellen.
Einlesen ist kein Problem, aber wie kann ich die Werte sortieren bzw den Max und Min Wert heraus lesen ?
Ich hab mir das so vorgestellt:
Man erstellt eine Hashmap.
Der 1. Wert aus dem File wird eingelesen und als Schlüssel der Hashmap verwendet.
Dann wird der nächste Wert eingelesen.
Es wird geschaut ob der Wert schon als Key vorhanden ist, wenn ja, dann erhöhe den Wert um 1.
Wenn nein, dann wird der Wert als neuer Key angelegt und der Inhalt auf 1 gesetzt.
Somit weiss man wie oft jede Zahl vorgekommen ist.
Jetzt möchte ich aber gerne heraus finden, welcher Wert das Max und Min ist.
Ist die Lösung mit der Hashmap überhaupt gescheit ?
Ich habs als Array auch versucht, aber das ist glaub ich nicht ganz so praktisch.
Code:
public void auftreten() throws IOException{
line=source.readLine();
for(int i=0;i<=zaehler;i++){
while(line != null) {
tok = new StringTokenizer(line);
while ( tok.hasMoreTokens() ) {
String x = tok.nextToken();
if ( numbers.containsKey(new Integer(Integer.parseInt(x))) == false ) {
numbers.put(new Integer(Integer.parseInt(x)), new Integer(1));
}
else {
Integer z = (Integer)numbers.get(new Integer(Integer.parseInt(x)));
String zz = z+"";
int wieviel = Integer.parseInt(zz) + 1;
numbers.put(new Integer(Integer.parseInt(x)),new Integer(wieviel));
}
}
line=source.readLine();
}
}
for(int i=0;i<=zaehler;i++){
if ( (numbers.get(new Integer(i))) == null ) {
numbers.put(new Integer(i),new Integer(0));
}
System.out.println(i + " --> " + numbers.get(new Integer(i)));
}
System.out.println((numbers.values()));
}