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

如何在给定某个参数的情况下返回java中的多个对象,java,arraylist,return,Java,Arraylist,Return,下面的方法从用户处接收一个带星号的并搜索数组以匹配该评级。当值与其中一个对象匹配时,它应该返回它。尽管该方法有效,但它只返回一个它找到的电影对象,而不是每个对象。例如,如果我输入3,它将返回第一部星级为3的电影,然后不执行任何操作。如果星级不存在,我如何返回空列表?我做了一些研究,但似乎找不到任何有用的东西。谢谢 /** * Write a method that returns a list of movies with the given star rating. * Return an

下面的方法从用户处接收一个带星号的
并搜索数组以匹配该评级。当值与其中一个对象匹配时,它应该返回它。尽管该方法有效,但它只返回一个它找到的
电影
对象,而不是每个对象。例如,如果我输入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
}
这可能会帮助你建立你的逻辑。非常感谢。希望d最好:)

public ArrayList getMoviesWithRating(int rating)
{
ArrayList obj_arrMovie=新的ArrayList();
对于(Movie obj_movies:movies){//在movies数组中迭代。
if(obj_movies.getstarting()==rating){//检查是否等于rating的条件语句?。
obj_arrmoine.add(obj_movies);//将所有电影对象添加到arraylist中,该arraylist可以通过条件。
}
}
返回obj_arr电影;
}

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

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

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

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 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(final Movie movie : Movie){
         if (movie.getRating() == rating) {
             return movie;
         }
    }
    throw new NoSuchElementException();
}

好吧,评论说返回一个列表。也许试试吧?那是java8练习吗??你能使用lambdas吗?你是如何定义电影的对不起,我没有看到方法的返回类型。现在我认为它的工作。我只关注逻辑领域,这是一个错误。非常感谢。
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 List<Movie> getMoviesWithRating(int rating) {
    return movies.stream().filter(movie -> movie.rating == rating).collect(Collectors.toList());
}
public Movie getMoviesWithRating(int rating){
    for(final Movie movie : Movie){
         if (movie.getRating() == rating) {
             return movie;
         }
    }
    throw new NoSuchElementException();
}