3 Stimmen

Verwendung einer Liste innerhalb einer Karte (Java)

Ich verwende eine HashMap, in der ich eine ArrayList als Wert verwenden.

Zum Beispiel so:

Map<Movie, List<Grades>> gradedMovies = new HashMap();

Ich versuche, eine Methode zu erstellen, mit der ich durch die Werte iterieren könnte, um zu sehen, ob ein Schlüssel (Film) bereits existiert. Wenn dies der Fall ist, möchte ich einen neuen Wert (Note) in die Liste aufnehmen, der dem jeweiligen Schlüssel (Film) zugeordnet ist. Etwa so:

public void addGrade(Movie movie, Grade grade) {
// stuff here }

Letztendlich möchte ich eine Karte ausdrucken können, auf der die Filme und ihre Noten angezeigt werden, nachdem sie der Karte hinzugefügt worden sind.

Wie wird dies bewerkstelligt? Oder ist mein ganzer Ansatz (Verwendung einer Karte) völlig falsch?

Danke für jede Hilfe. (Dies ist eine Hausaufgabe)

2voto

John B Punkte 31552

Besuchen Sie Guava's Multimap . Das ist genau das, was sie tut.

private Multimap<Movie, Grade> map = ArrayListMultimap.create();

public void addGrade(Movie movie, Grade grade){
   map.put(movie, grade);
}

Es wird die Erstellung der Liste für Sie übernehmen.

1voto

jbranchaud Punkte 5649
public void addGrade(Movie movie, Grade grade) {

boolean found = false;
for(Movie m : gradedMovies.keyset()) {
    // compare the movies
    if(/* match on movies */) {
        gradedMovies.get(m).add(grade);
        found = true;
    }
}
if(!found) {
    gradedMovies.put(movie, new ArrayList().add(grade));
}
}

1voto

Samir Mangroliya Punkte 39089
gradedMovies.containsKey(movie);

    for(Map.Entry<Movie,List<Grades>> entry : gradedMovies.entrySet()){
            Movie key = entry.getKey();
       }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X