有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

arraylist如何在给定某个参数的情况下返回java中的多个对象

下面的方法接收来自用户的starRating,并搜索数组以匹配该评级。当值与其中一个对象匹配时,它应该返回它。尽管该方法有效,但它只返回一个它找到的Movie对象,而不是每个对象。例如,如果我输入3,它会返回第一部星级为3的电影,然后什么也不做。此外,如果星级不存在,我如何返回空列表?我做了一些研究,但似乎找不到任何有用的东西。谢谢

/**
 * Write a method that returns a list of movies with the given star rating.
 * Return an empty list if the star rating does not exist.
 */
public Movie getMoviesWithRating(int rating)
{
    for (Movie movies : movies){
        if(movies.getStarRating() == rating){
            return movies;
        }
    }
    return //EmptyList
}

共 (4) 个答案

  1. # 1 楼答案

    要返回电影列表,必须具有列表的返回类型

    public List<Movie> getMoviesWithRating(int rating)
    {
        List<Movie> movies = new ArrayList<Movie>();
        for (Movie movies : movies){
            if(movies.getStarRating() == rating){
                movies.add(movie);
            }
        }
        return movies.
    }
    

    如果无法更改返回类型,至少如果找不到具有给定评级的电影,则返回空值

    public Movie getMoviesWithRating(int rating)
    {
        for (Movie movies : movies){
            if(movies.getStarRating() == rating){
                return movie;
            }
        }
        return null.
    }
    
  2. # 2 楼答案

    如果你有Java 8,你可以这样做:

    public List<Movie> getMoviesWithRating(int rating) {
        return movies.stream().filter(movie -> movie.rating == rating).collect(Collectors.toList());
    }
    
  3. # 3 楼答案

    你可以在下面尝试:

    public List<Movie> getMoviesWithRating(int rating)
    {
        List<Movie> movies = new ArrayList<Movie>();
        for (Movie movies : movies){
            if(movies.getStarRating() == rating){
                movies.add(movie);
            }
        }
        return movies.
    }
    

    如果您正在使用Java 8,您可以尝试:

    public List<Movie> getMoviesWithRating(int rating) {
        return movies.stream().filter(movie -> movie.rating == rating).collect(Collectors.toList());
    }
    

    如果找不到项,更好的方法可能是抛出exception

    public Movie getMoviesWithRating(int rating){
        for(final Movie movie : Movie){
             if (movie.getRating() == rating) {
                 return movie;
             }
        }
        throw new NoSuchElementException();
    }
    
  4. # 4 楼答案

    This Might help u out to build your Logic. Thank You.. Hope for d best :)

     public ArrayList<Movie> getMoviesWithRating(int rating)
        {
          ArrayList<Movie> obj_arrMovie = new ArrayList<Movie>();
            for (Movie obj_movies : movies){ //Iterate throughout the movies Array.
                if(obj_movies.getStarRating() == rating){ //Conditional Statement to check whether it is equivalent to rating or not ?.
                     obj_arrMovie.add(obj_movies); //Add all movie object to arraylist which can pass the condition.
                }
            }
            return obj_arrMovie;
        }