добавление ArrayList'a в HashMap
Есть список коллекций фильмов. List movieList.
У объекта Movie есть поля: String name; String actor
Подскажите пожалуйста как можно с помощью какого либо ассоциативного массива (например HashMap) добавить список фильмов в него?
Далее необходимо вывести список всех фильмов в котором снимался тот или иной актер.
Заранее спасибо! Собственных идей как это сделать нет к сожалению
Ответы (1 шт):
По условиям Вашей задачи Movie выглядит как-то так (но тут вопрос, ведь в одном фильме снимается много актеров...) :
public class Movie {
private String name;
private String actor;
public Movie(String name, String actor){
this.name = name;
this.actor = actor;
}
public String getName(){
return name;
}
public String getActor(){
return actor;
}
}
То, насколько можно сделать какие-то выводы из Вашего вопроса, Вы хотите сделать что-то вроде этого:
import java.util.*;
public class MainClass
{
public static HashMap<String, Movie> movieMap;
public static void main(String[] args) {
ArrayList<Movie> movieList = new ArrayList<Movie>();
movieList.add(new Movie("Волк с Уолл-стрит","Леонардо ДиКаприо"));
movieList.add(new Movie("Титаник","Леонардо ДиКаприо"));
movieList.add(new Movie("Легенда","Том Харди"));
movieMap = new HashMap<String, Movie>();
for (Movie movie : movieList) {
movieMap.put(movie.getName(), movie);
}
printMoviesWithActor(movieMap,"Леонардо ДиКаприо");
}
public static void printMoviesWithActor(HashMap<String, Movie> movieMap, String actor){
for (Map.Entry<String, Movie> entry : movieMap.entrySet()) {
Movie movie = entry.getValue();
if(movie.getActor().equals(actor)){
System.out.println(movie.getName());
}
}
}
}
Вывод:
Титаник
Волк с Уолл-стрит
Если это не то, что Вы имели в виду, то уточните свой вопрос, пожалуйста. Или, возможно, Вам пригодятся идеи из этого кода.