如何在给定某个参数的情况下返回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();
}