HashMap : Ajout de valeurs avec les touches communes et l'impression de sortir

J'ai un fichier qui a Chaîne dans le formulaire key/value paire comme les gens et les compter, exemple serait

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

et à la sortie j'aurais résume toutes les valeurs fondées sur la clé, donc pour notre exemple, la sortie serait

"Reggy, 19"
"Jenny, 25"

Voici ma démarche:

  1. Lire chaque ligne et pour chaque ligne de la clé et à compter à l'aide de scanner et d'avoir , comme délimiteur
  2. Maintenant voir si la clé est déjà présent avant de s'puis il suffit d'ajouter currentValues à previousValues si pas alors prendre currentValue que la valeur de la table de hachage.

Exemple De Mise En Œuvre:

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();
    }
}

Part je ne suis pas clair de savoir comment diviser une paire clé/valeur lors de la lecture et de la création de table de hachage.

Est aussi l'approche suis suggestion une optimale ou est-il un moyen pour améliorer la performance plus.

avez-vous essayé java.util.HashMap#containsKey(),put(),get() ?
C'est "pseudo-code" 🙂 en.wikipedia.org/wiki/Pseudocode

OriginalL'auteur Rachel | 2013-02-08