2017-12-02 7 views
0

객체 Movie가 포함 된 배열 "movieScedule"이 있습니다. 이 (영화) 객체에는 티켓 가격이 있습니다.다른 메서드 (Java)에 이미 존재하는 새 객체를 만드는 방법

는 지금은 영화 방법에 대한 가장 비싼 티켓을 표시하는 방법 만들려면 : 이제

public Movie mostExpensive() 
{ 
.... 
.... 
.... 
} 

나는이 방법 내부에 새로운 동영상 개체를 만들 생각을하고 루프를 실행하려면 배열 에있는 모든 영화에 걸쳐 그리고 나서 인덱스 0에서 영화를 실행하고 각 영화 가격을 확인하려면 getMoviePrice() 메서드를 사용하여 for 루프를 반복하십시오.

마지막으로이 안에 만든 대상 무비를 선언하고 싶습니다. 방법으로 높은 에 moviePrice 다음 반환 (영화)

어떤 생각? 어쩌면 더 좋은 방법이 있을까요?

+0

좋은 아이디어처럼 들리겠습니까? – alfasin

+0

난 그게 어떻게 hehe 문제가 뭔지 모르겠다 –

+0

Stackoverflow에 오신 것을 환영합니다 [How to Ask] (https://stackoverflow.com/help/how-to-ask) 읽어보십시오. [MCVE 제작 방법] (https://stackoverflow.com/help/mcve)에 특히주의하십시오. 좋은 질문을 게시하는 데 더 많은 노력을 기울일 수 있습니다 : 읽기 쉽고 이해하기 쉽고 주제가 (https://stackoverflow.com/help/on-topic)입니다 - 기회가 더 많습니다 관련 인력을 유치하면 더 빨리 도움을받을 수 있습니다. 행운을 빕니다! – alfasin

답변

1

그래서 나는 당신과 같이, 동영상 클래스가, 가정

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 
    } 

이 값은 더 싸기 때문에 새로운 영화 인스턴스를 만들 필요가 없습니다. 원한다면 java8 스트림으로도이를 수행 할 수 있습니다 (this stack post 확인).

Optional<Movie> mostExpensiveMovie = Arrays.stream(movieScedule) 
.max(Comparator.comparing(Movie::getTicketPrice)); 
0

당신이 질문하는 것을 어렵게 이해합니다. 다행히 이것이 당신이 원하는 것입니다. 가장 비싼 티켓을 얻는 가장 쉬운 방법은 다음과 같습니다.

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; 
} 
+0

Beri가 빠르며 대답이 null입니다. 그래서 그의 접근 방식을 사용하십시오. – OmnomnomTee

0

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(); 
}