HashMap : Hinzufügen von Werten mit gemeinsamen Tasten, und drucken Sie Sie aus

Habe ich die Datei die Zeichenkette in der form key/value - pair-Mädchen wie Menschen und zählen, Beispiel wäre

"Reggy, 15"
"Jenny, 20"
"Reggy, 4"
"Jenny, 5"

und in der Ausgabe, die ich hätte summiert alle Werte, basierend auf Schlüssel-also für unser Beispiel-Ausgabe wäre

"Reggy, 19"
"Jenny, 25"

Hier ist mein Ansatz:

  1. Lesen Sie jede Zeile und für jede Zeile key bekommen und Zählung mit scanner und mit , als Trennzeichen
  2. Nun sehen, ob der Schlüssel schon vorhanden ist, bevor, wenn, dann nur hinzufügen currentValues zu previousValues wenn nicht, dann nehmen Sie currentValue als Wert der HashMap.

Beispiel-Implementierung:

public static void main(final String[] argv) {
    final File file = new File("C:\\Users\\rachel\\Desktop\\keyCount.txt");

    try {
        final Scanner scanner = new Scanner(file);

        while (scanner.hasNextLine()) {
            if (scanner.hasNext(".*,")) {
                String key;
                final String value;

                key = scanner.next(".*,").trim();

                if (!(scanner.hasNext())) {
                    //pick a better exception to throw
                    throw new Error("Missing value for key: " + key);
                }

                key = key.substring(0, key.length() - 1);
                value = scanner.next();

                System.out.println("key = " + key + " value = " + value);
            }
        }
    } catch (final FileNotFoundException ex) {
        ex.printStackTrace();
    }
}

Teil ich bin mir nicht klar darüber ist, wie sich zu teilen Schlüssel/Wert-paar beim Lesen und erstellen von HashMap, die Grundlage.

Ist auch der Ansatz am Vorschlag ist eine optimale oder gibt es eine Möglichkeit zur Verbesserung der Leistung mehr.

InformationsquelleAutor Rachel | 2013-02-08
Schreibe einen Kommentar