Problem mit Hashtable

Status
Nicht offen für weitere Antworten.

Creativ

Aktives Mitglied
Hi,
Habe derzeit mal wieder ein bestimmt simples Problem :D

Und zwar will ich zählen wie oft welche Buchstaben in einen Text vorkommen.

Gehe dazu jeden Buchstaben durch und will dann für jeden Buchstaben den Wert in einen Array erhöhen. Der Array soll also so aussehen:

A => 0
B => 0
C => 0
....

und wenn jetzt z.B. ein A kam, soll der wert um eins erhöht werden:
A => 1
B => 0
....

Jetzt ist aber mein Problem, dass ich mich noch nicht so gut mit Collections in Java auskenne.
Habe bisher immer PHP gemacht (kann ich auch gut) und da gibts halt nur Arrays :D
Jetzt hab ich mal bissl rumgeguckt und denke mal eine Hashtable würde da recht gut funktionieren.

Hab die auch schon angelegt:
Code:
//HASHTABLE
Hashtable h = new Hashtable();
    
h.put("A",0);
h.put("B",0);

Jetzt weiß ich aber nicht, wie cih den Wert um eins erhöhen kann.

Ich hoffe ihr könnt mir da helfen.
Und ist Hashtable da überhaupt richtig? ???:L

Danke schonmal.
Dennis
 
B

Beni

Gast
Code:
h.put( "A", h.get( "A") + 1 );
 

Creativ

Aktives Mitglied
Danke!
Habe das jetzt soweit hingekriegt, aber jetzt habe ich ein neues Problem.
Und zwar habe ich ja einen Text und will da die Anzahl der verschiedenen Buchstaben auslesen.

Das habe ich jetzt auch soweit hingekriegt.

Ich habe da ja einfach eine Hashtable genommen und das dann einfach eingetragen und für jeden Buchstaben den Wert um eins hochgezählt.

Jetzt will ich das aber noch sortieren.

Hatte jetzt mal versucht, die Hashtable umzudrehen und in eine TreeMap einzutragen.
Habe dann also eine TreeMap die so aussieht:
4 => D
3 => G

usw.
Die könnte ich dann ja einfach sortieren. Das Problem ist jetzt aber, dass wenn mehrere Buchstaben die gleiche Anzahl haben, also z.B. 3 Buchstaben 1mal vorkommen, dann wird das überschrieben.

Wenn ich also z.B. das Wort "Hallo" nehme, dann wird das erstmal in die Hashtable eingetragen:
H => 1
A => 1
L => 2
O => 1

Dann wirds umgedreht:
1 => O
2 => L

Es bleibt also nur das "O" über und der Rest wurde vom O überschrieben.

Wie kann ich das verhindern?

Oder habt ihr eine bessere Idee wie ich das alles angehe?
 

Marco13

Top Contributor
Am elegantesten wäre es wohl, sich die EntrySet von der HashTable zu holen, und die dann in eine Collection zu packen, die sortiert ist (könnte dann auch ein TreeSet sein)
Code:
Set<Map.Entry<String,Integer>> set = hashtable.entrySet();
TreeSet treeSet = new TreeSet<Map.Entry<String,Integer>>(new SomeComparator());
treeSet.addAll(set);
Dabei ist "SomeComparator" eine Klasse, die "Comparator" implementiert, und zwei Map.Entry<String,Integer>-Objekte nach dem Integer vergleicht. (Foren- oder Websuche nach "Comparator" o.ä).
 

Creativ

Aktives Mitglied
Hi,
Hat bissl gedauert bis ich wieder hier antworte, da ich zu beschäftigt war um mich damit zu beschäftigen.
Jetzt hab ich aber wieder Zeit.

hm...verstehe nicht ganz wie du das meinst, oder eher wie man das dann machen kann.^^

Habe jetzt erstmal versucht das entrySet() von der Hashtable in das TreeSet zu übernehmen (erstmal ohne den eigenen Comparator).
Habe dazu erstmal deinen Code übernommen.
Aber wenn ich dass dann ausführe kriege ich folgende Fehlermeldung:

Exception in thread "main" java.lang.ClassCastException: java.util.Hashtable$Entry cannot be cast to java.lang.Comparable

Der Fehler soll in Zeile 56 passieren:
Code:
treeSet.addAll(set);

Oder kommt der Fehler dadurch zustande, dass ich keinen Comparator angegeben habe? Eigentlich hat doch TreeSet dann standardmäßig einen Comparator, oder nicht?


Mir fehlt außerdem der Ansatz wie ich jetzt einen Comparator schreiben soll, der "zwei Map.Entry<String,Integer>-Objekte nach dem Integer vergleicht.".

Ich habe bisher nur simple Comparator gehabt, wo ich vll einmal rückwärts sortiert habe.

Gruß,
Dennis
 

Creativ

Aktives Mitglied
Habe das Problem jetzt erstmal anders gelöst.

Habe einfach erstmal eine ArrayList mit den Werten anzahl_buchstaben gefüllt. Die dann rückwärts sortiert und dass dann wieder auseinandergenommen und wieder in eine Hashtable gefüllt, die dann in der richten Reihenfolge war.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Hashtable.containsKey Problem Java Basics - Anfänger-Themen 13
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
F Problem mit Listen Java Basics - Anfänger-Themen 5
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
J Problem bei Umrechnung von Hex in Bin Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben