Hi,
Folgender Pseudocode:
Meine Frage ist nun, ob es effizienter wäre mithilfe einer HashMap ODER eines
Hashsets und eine Liste zu arbeiten: Würde dies nicht speichersparender sein?
Ungefähr so:
Denke ich da korrekt? Vorher wurden einfach nur Tokens in die Arraylist abgelegt...
nun aber, werden quasi alle tokens mit einer hashmap zugewiesen: Sprich: Wenn
ein token bereits zugewiesen wurde, dann war dieser in genau der Form schonmal
im Text vorhanden, also kann ich doch einfach eine Referenz an die Stelle stellen?
Ist dies korrekt gedacht, oder unfug?
Folgender Pseudocode:
Java:
//Lese Text einer Textdatei zeilenweise ein
(...)
//Zerstückel einzelne Wörter, welche einen Trenner wie (" .,;: etc") haben
(...)
//Solange noch Tokens vorhanden
//Füge Token in eine ArrayList
while(st.hasMoreTokens()) {
String token = st.nextToken();
al.add(token);
}
Meine Frage ist nun, ob es effizienter wäre mithilfe einer HashMap ODER eines
Hashsets und eine Liste zu arbeiten: Würde dies nicht speichersparender sein?
Ungefähr so:
Java:
//Lese Text einer Textdatei zeilenweise ein
(...)
//Zerstückel einzelne Wörter, welche einen Trenner wie (" .,;: etc") haben
(...)
//Solange noch Tokens vorhanden
//Prüfe ob Token in Hashmap ist
//Falls ja, adde diesen der Arraylist
//Falls nein, erzeuge eine neue Schlüssel-Wert Beziehung und füge den Wert ein
while(st.hasMoreTokens()) {
String token = st.nextToken();
if(hm.containsKey(token) {
al.add(hm.get(token));
} else {
hm.put(token, token);
al.add(token);
}
}
Denke ich da korrekt? Vorher wurden einfach nur Tokens in die Arraylist abgelegt...
nun aber, werden quasi alle tokens mit einer hashmap zugewiesen: Sprich: Wenn
ein token bereits zugewiesen wurde, dann war dieser in genau der Form schonmal
im Text vorhanden, also kann ich doch einfach eine Referenz an die Stelle stellen?
Ist dies korrekt gedacht, oder unfug?