File tree Expand file tree Collapse file tree 3 files changed +52
-4
lines changed
Expand file tree Collapse file tree 3 files changed +52
-4
lines changed Original file line number Diff line number Diff line change 1+ import java .util .ArrayList ;
2+ import java .util .HashMap ;
3+
4+ /**
5+ * The class EfficientRater keeps track of one rater and all their ratings.
6+ *
7+ * @author Stanislav Rakitov
8+ * @version 1.0
9+ */
10+ public class EfficientRater implements Rater {
11+ private final String myID ;
12+ private final HashMap <String , Rating > myRatings ;
13+
14+ public EfficientRater (String id ) {
15+ myID = id ;
16+ myRatings = new HashMap <>();
17+ }
18+
19+ public void addRating (String movieID , Rating rating ) {
20+ myRatings .put (movieID , rating );
21+ }
22+
23+ public boolean hasRating (String movieID ) {
24+ return myRatings .containsKey (movieID );
25+ }
26+
27+ public String getID () {
28+ return myID ;
29+ }
30+
31+ public double getRating (String movieID ) {
32+ Rating rating = myRatings .get (movieID );
33+ if (rating != null ) {
34+ return rating .getValue ();
35+ } else {
36+ return -1 ;
37+ }
38+ }
39+
40+ public int numRatings () {
41+ return myRatings .size ();
42+ }
43+
44+ public ArrayList <String > getItemsRated () {
45+ return new ArrayList <>(myRatings .keySet ());
46+ }
47+ }
Original file line number Diff line number Diff line change @@ -366,14 +366,14 @@ private ArrayList<Rater> loadRaters(String fileName) {
366366 double rating = Double .parseDouble (record .get (2 ));
367367 String time = record .get (3 );
368368 if (!idsList .contains (rater_id )) {
369- Rater rater = new PlainRater (rater_id );
369+ Rater rater = new EfficientRater (rater_id );
370370 ratersList .add (rater );
371- rater .addRating (movie_id , rating );
371+ rater .addRating (movie_id , new Rating ( movie_id , rating ) );
372372 idsList .add (rater_id );
373373 } else {
374374 for (Rater r : ratersList ) {
375375 if (r .getID ().equals (rater_id )) {
376- r .addRating (movie_id , rating );
376+ r .addRating (movie_id , new Rating ( movie_id , rating ) );
377377 }
378378 }
379379 }
Original file line number Diff line number Diff line change 11import java .util .ArrayList ;
22
33public interface Rater {
4- void addRating (String item , double rating );
4+ // void addRating(String item, double rating);
5+ void addRating (String movieID , Rating rating );
56
67 boolean hasRating (String item );
78
You can’t perform that action at this time.
0 commit comments