Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建已存在于另一个方法中的新对象?_Java_Arrays_Methods - Fatal编程技术网

Java 如何创建已存在于另一个方法中的新对象?

Java 如何创建已存在于另一个方法中的新对象?,java,arrays,methods,Java,Arrays,Methods,我有一个数组moviescdule,其中包含对象Movie。在这部电影中,我知道票价 现在我想创建一个方法来显示电影中最昂贵的门票 方法: public Movie mostExpensive() { .... .... .... } 现在我想在这个方法中创建新的电影对象 然后让循环在阵列中的所有电影上运行 然后,使用getMoviePrice()方法,从索引0在所有电影中运行另一个for循环,并检查每个电影的价格 最后,我想将我在这个方法中创建的对象电影声明为最高的moviePr

我有一个数组
moviescdule
,其中包含对象Movie。在这部电影中,我知道票价

现在我想创建一个方法来显示电影中最昂贵的门票

方法:

public Movie mostExpensive()
{
  ....
  ....
  ....
}
现在我想在这个方法中创建新的电影对象 然后让循环在阵列中的所有电影上运行 然后,使用
getMoviePrice()
方法,从索引0在所有电影中运行另一个for循环,并检查每个电影的价格

最后,我想将我在这个方法中创建的对象电影声明为最高的
moviePrice
然后返回(电影)


有什么想法吗?也许有更好的方法?

所以我想,你有一个电影课,比如:

类电影{
私人电影双价;
}
任何你想找到最高价的电影,而不是最高价的电影

moviemostexpensive(){
Movie mostExpensiveMovie=null;
用于(电影:movieScedule){
if(mostExpensiveMovie==null | |//用于第一个元素
//将以前的胶片价格与当前胶片价格进行比较
movie.getMoviePrice()>mostExpensiveMovie.getMoviePrice()){
mostExpensiveMovie=电影;
}
}
return mostExpensiveMovie;//返回最昂贵的电影
}
这将更便宜,不需要创建新的电影实例。 如果您愿意,这也可以通过java8流实现,请检查

可选mostExpensiveMovie=Arrays.stream(moviescdule)
.max(Comparator.comparing(Movie::getTicketPrice));

很难正确理解你的问题。希望这就是你想要的。获得最昂贵门票的简单方法是:

ArrayList<Movie> movies = new ArrayList<>();
//populate array list

public Movie getMostExpensiveTicket(ArrayList<Movie> movies) {
    Movie mostExpensive = movies.get(0); // not null save
    for (Movie movie : movies) {
        if (movie.getMoviePrice() > mostExpensive.getMoviePrice())
            mostExpensive = movie;
    }
    return mostExpensive;
}
ArrayList movies=new ArrayList();
//填充数组列表
公共电影getMostExpensiveTicket(ArrayList电影){
Movie mostExpensive=movies.get(0);//保存时不为空
用于(电影:电影){
if(movie.getMoviePrice()>mostExpensive.getMoviePrice())
mostExpensive=电影;
}
回报最大;
}

如果您使用的是java 8或更高版本,我建议您利用java streams。它看起来是这样的:

public static Movie mostExpesive(Movie[] MoviesSchedule) {
    Optional<Movie> maxPriceMovie = Stream.of(MoviesSchedule)
            .collect(Collectors.maxBy((a, b) -> a.price - b.price));
    return maxPriceMovie.get();
}
公共静态电影最流行(电影[]电影时间表){
可选maxPriceMovie=Stream.of(电影时间表)
.collect(Collectors.maxBy((a,b)->a.price-b.price));
返回maxPriceMovie.get();
}

听起来是个好主意-去做吧!我不知道怎么做这是问题他会来Stackoverflow,请阅读。特别注意。你在发布一个好的问题上投入的精力越多:一个容易阅读、理解的问题,而且这个问题越容易吸引相关的人,你得到帮助的速度就越快。祝你好运您只需要一个循环即可找到最高价格。如果Move是不可变的,只需返回找到的对象;else返回找到的对象的新创建副本。Beri更快,他的答案是null save。所以请使用他的方法。