返回Collection项和Java的空数组

时间:2015-11-18 01:46:20

标签: java arrays

你能帮助findByTitle吗?

我想返回带有给定标题的电影,如果图书馆中没有带有该标题的电影,则返回null。我在最后添加了null,以便编译。

public Movie findMovieByTitle(String title)
{
  for(Movie movieToSearch : movies) {
      if (movieToSearch.equals(title)){
            return movieToSearch;
        }else{
            return null;
       } 
    } 
    return null; 
}

我需要删除电影方法的帮助。

/**
 * removes movie based on title
 */
public void removeMovie(String title)
{  //fix this
    Iterator<Movie> it = movies.iterator();
    while(it.hasNext()) {
        Movie movie = it.next();
        if(movie.equals(title)) 
            movies.remove(movie);
    }

}

我好像几乎都在那里......但并不完全。我想要退回评级的电影,而不是打印出来。

对于else if语句,我只想返回一个空数组。我怎样才能做到这一点?

public void getMoviesWithStarRating(int rating)
{   
    Iterator<Movie> it = movies.iterator();
    while(it.hasNext()) {
        Movie movie = it.next();
        if (movie.getStarRating() == rating) {
           //return movie;

            //Testing output:
           System.out.println("Movie: " + movie.getTitle() + "  Rating: " + movie.getStarRating());
        }
        else if (rating < 0 || rating > 4){
          //return empty array
          //test
           System.out.println("invalid entry");
        }
    }
}

printRatingReport()

{ //代码

}

最后,我想编写一个名为printRatingReport的方法,用于打印每个星级评分的电影数量      样本输出:

       4-star movies: 2

       3-star movies: 1

       2-star movies: 0

       1-star movies: 0

       Unrated movies: 2

2 个答案:

答案 0 :(得分:0)

你可能会使用错误的容器。您可能希望使用Map<String, Movie>,然后只需拨打movie.get(title)即可。这保证了你要求的行为。

如果您坚持使用List使用indexOf(Object o)方法,但首先需要覆盖电影的equals()hashCode()

<强>注意: movie不等于title AS apple不等于banana

答案 1 :(得分:0)

实际上我觉得你的findMovieByTitle(String title)方法有问题,如果获得电影标题的方法是getTitle(),这就是我认为应该是的:

public Movie findMovieByTitle(String title)
{
  for(Movie movieToSearch : movies) {
      if (movieToSearch.getTitle().equals(title)){
            return movieToSearch;      
      } 
  }
    return null; 
}

getMoviesWithStarRating中的问题是它不应该返回void,而是应该返回Movie的列表,例如ArrayList<Movie>