-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMovieRunnerWithFilters.java
More file actions
150 lines (136 loc) · 6.71 KB
/
MovieRunnerWithFilters.java
File metadata and controls
150 lines (136 loc) · 6.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/**
* Write a description of MovieRunnerWithFilters here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.*;
public class MovieRunnerWithFilters {
public void printAverageRatings(){
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 35;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatings(minimalRaters);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+" "+MovieDatabase.getTitle(r.getItem()));
}
}
public void printAverageRatingsByYear(){
int year = 2000;
YearAfterFilter yearFilter = new YearAfterFilter(year);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 20;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, yearFilter);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+" "+MovieDatabase.getYear(r.getItem())
+" "+MovieDatabase.getTitle(r.getItem()));
}
}
public void printAverageRatingsByGenre(){
String genre = "Comedy";
GenreFilter genreFilter = new GenreFilter(genre);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 20;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, genreFilter);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+
" "+MovieDatabase.getTitle(r.getItem()));
System.out.println(" "+MovieDatabase.getGenres(r.getItem()));
}
}
public void printAverageRatingsByMinutes(){
int mimMinutes = 105;
int maxMinutes = 135;
MinutesFilter minutesFilter = new MinutesFilter(mimMinutes, maxMinutes);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 5;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, minutesFilter);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+ " Time: "+MovieDatabase.getMinutes(r.getItem())+
" "+MovieDatabase.getTitle(r.getItem()));
}
}
public void printAverageRatingsByDirectors(){
String director = "Clint Eastwood,Joel Coen,Martin Scorsese,Roman Polanski,Nora Ephron,Ridley Scott,Sydney Pollack";
DirectorsFilter directorsFilter = new DirectorsFilter(director);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 4;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, directorsFilter);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+
" "+MovieDatabase.getTitle(r.getItem()));
System.out.println(" "+MovieDatabase.getDirector(r.getItem()));
}
}
public void printAverageRatingsByYearAfterAndGenre(){
String genre = "Drama";
GenreFilter genreFilter = new GenreFilter(genre);
int year = 1990;
YearAfterFilter yearFilter = new YearAfterFilter(year);
AllFilters af = new AllFilters();
af.addFilter(yearFilter);
af.addFilter(genreFilter);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 8;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, af);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+
" "+MovieDatabase.getYear(r.getItem())+
" "+MovieDatabase.getTitle(r.getItem()));
System.out.println(" "+MovieDatabase.getGenres(r.getItem()));
}
}
public void printAverageRatingsByDirectorsAndMinutes(){
int mimMinutes = 90;
int maxMinutes = 180;
MinutesFilter minutesFilter = new MinutesFilter(mimMinutes, maxMinutes);
String director = "Clint Eastwood,Joel Coen,Tim Burton,Ron Howard,Nora Ephron,Sydney Pollack";
DirectorsFilter directorsFilter = new DirectorsFilter(director);
AllFilters af = new AllFilters();
af.addFilter(minutesFilter);
af.addFilter(directorsFilter);
ThirdRatings sr = new ThirdRatings("ratings.csv");
System.out.println("Raters number: "+sr.getRaterSize());
int minimalRaters = 3;
MovieDatabase.initialize("ratedmoviesfull.csv");
System.out.println("Movies number: "+MovieDatabase.size());
ArrayList<Rating> avgList = sr.getAverageRatingsByFilter(minimalRaters, af);
System.out.println("found : "+avgList.size()+" movies");
Collections.sort(avgList);
for(Rating r: avgList){
System.out.println(r.getValue()+
" Time: "+MovieDatabase.getMinutes(r.getItem())+
" "+MovieDatabase.getTitle(r.getItem()));
System.out.println(" "+MovieDatabase.getDirector(r.getItem()));
}
}
}