2017-11-15 2 views
0

Sorry über den Titel wirklich Mühe, um dies zu benennen. Mal sehen, wie die Frage geht .....Aktualisieren einer hashmap innerhalb einer hashmap mit einer Klasse

In Java habe ich eine Klasse namens Buch, die den folgenden Code enthält. Wenn name der Buchname ist, ist die hashMap-Zeichenfolge der Name der Kritik und die hashMap Integer ist die kritische Punktzahl.

public class book { 

    private String name; 
    private HashMap<String, Integer> results = new HashMap<String, Integer>(); 
} 

Ich habe dann eine andere Klasse namens bookRecord, die den folgenden Code enthält.

Ich habe eine Benutzeroberfläche geschrieben, die es mir erlaubt, ein neues Buch einzugeben und dieses Buch in den bookRecord zu speichern.

Die Ganzzahl in bookRecord ist eine ID für das Buch. Ich habe eine Abfrage geschrieben, um nach der ID zu suchen und den Namen des Buches zurückzugeben. Jetzt möchte ich in der Lage sein, das Buch zu aktualisieren, wenn ein neuer Kritiker und eine neue Punktzahl verfügbar ist.

Ich habe mit einer für jede Schleife gespielt, um den richtigen Schlüssel in der Buchaufzeichnung zu finden und dann, wenn der Schlüssel für jede Schleife gefunden wird, aber ich habe mich verwirrt.

Irgendwelche Ratschläge?

Antwort

2

Sie haben zwei Möglichkeiten:

Erste Option können Sie die results HashMap öffentlich machen und so etwas wie dies erreichen können:

Book uBook = records.get(BOOK_ID_YOU_WANT_TO_UPDATE); 
if (uBook != null) { 
    uBook.results.put("New critic name", Critic_SCORE); 
} 

Sekunden Option ist die results privat zu verlassen, aber eine neue Methode addCriticScore(String criticName, Integer score) hinzufügen:

// In your class that updates the book 
Book uBook = records.get(BOOK_ID_YOU_WANT_TO_UPDATE); 

// In the Book class 
public void addCriticScore(String criticName, Integer score) { 
    this.results.put(criticName, score); 
} 

PS: vergessen Sie nicht, Ihre Klasse book umbenennen Book. In java ist der Klassenname mit Großbuchstaben

Verwandte Themen