728x90
반응형
[자료 구조] 9. List 인터페이스 활용 : 영화 평점 관리 시스템 예제 만들기
상황 설명
: 사용자가 영화에 평점을 주고, 평점에 따라 영화 추천 목록을 관리하는 시스템입니다.
사용자는 영화에 1부터 5까지의 평점을 줄 수 있으며, 평점이 높은 영화부터 낮은 순으로 정렬하여 보여줍니다
package Structure.ch05;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class MovieRatingSystem {
public static void main(String[] args) {
// Movie Object 계속 추가하는 자료 구조
ArrayList<Movie> movies = new ArrayList<Movie>();
movies.add(new Movie("범죄도시 4",2));
movies.add(new Movie("기생충",4));
movies.add(new Movie("택시 드라이버",3));
movies.add(new Movie("인턴",5));
// for-each 구문 사용
System.out.println(movies);
for (Movie movie : movies) {
System.out.println(movie.getTitle());
}
for(int i=0; i<movies.size(); i++) {
System.out.println(movies.get(i).getTitle());
}
// 어떤 데이터를 정렬을 하려면 정렬 알고리즘을 구현해서
// 만들어주면 된다.
// like 버블 정렬, 퀵 정렬 ...
Collections.sort(movies,new Comparator<Movie>() {
@Override
public int compare(Movie m1, Movie m2) {
// TODO Auto-generated method stub
return Integer.compare(m2.getRating(), m1.getRating());
}
});
System.out.println("---------------");
for(Movie movie : movies) {
System.out.println(movie);
}
} // end of main
} // end of class
class Movie {
private String title; // 영화의 제목
private int rating; // 영화의 평점
// 사용자 정의 생성자 (이름, 평점 입력)
public Movie(String title, int rating) {
this.title = title;
this.rating = rating;
}
// toString 오버라이딩
@Override
public String toString() {
return "Movie [title=" + title + ", rating=" + rating + "]";
}
// getter 메서드 생성 (이름, 평점)
public String getTitle() {
return title;
}
public int getRating() {
return rating;
}
}
728x90
반응형
'자료 구조 > 기본 개념' 카테고리의 다른 글
[자료 구조] 11. Set 인터페이스 예제 : 고유 사용자 ID 관리 시스템 (0) | 2024.05.10 |
---|---|
[자료 구조] 10. Set 인터페이스 (0) | 2024.05.10 |
[자료 구조] 8. List 인터페이스 (0) | 2024.05.09 |
[자료 구조] 7. 컬렉션 프레임 워크 (0) | 2024.05.09 |
[자료 구조] 6. 연결 리스트 (0) | 2024.05.08 |