如何创建已存在的另一种方法(java)的新对象
我有一个包含对象Movie的数组“movieScedule
”。在这个(电影)对象中,我有票的价格。如何创建已存在的另一种方法(java)的新对象
现在我想创建,展示了最昂贵的张电影票 制备方法的方法:
public Movie mostExpensive() {
....
....
....
}
现在我想创造这个方法 内新的电影对象,然后循环运行遍及阵列 在电影,然后另一个用于循环从索引0遍布电影运行,并通过使用getMoviePrice()
方法
在端检查每个电影的价格,我想声明我内部此创建的对象的电影方法为高est moviePrice
然后返回(电影)
任何想法?也许有更好的方法?
回答:
所以,我认为,你有一个电影类,像这样:
class Movie { private Double moviePrice;
}
任何你想找到的最高价格,而不是电影的最高价格。
Movie mostExpensive() { Movie mostExpensiveMovie = null;
for(Movie movie: movieScedule){
if(mostExpensiveMovie == null || //use for the first element
movie.getMoviePrice() > mostExpensiveMovie .getMoviePrice(){ // compare previous film price with current one
mostExpensiveMovie = movie;
}
}
return mostExpensiveMovie ; // return most expensive movi
}
这样会更便宜,无需创建新的Movie实例。 如果你愿意,这也可以通过java8流实现,检查this stack post。
Optional<Movie> mostExpensiveMovie = Arrays.stream(movieScedule) .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;
}
回答:
如果您使用的是Java 8或以上,我会建议服用Java流的优势。它看起来像这样:
public static Movie mostExpesive(Movie[] MoviesSchedule) { Optional<Movie> maxPriceMovie = Stream.of(MoviesSchedule)
.collect(Collectors.maxBy((a, b) -> a.price - b.price));
return maxPriceMovie.get();
}
以上是 如何创建已存在的另一种方法(java)的新对象 的全部内容, 来源链接: utcz.com/qa/258811.html