|
|
@@ -2,12 +2,15 @@ package logic;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import data.Actor;
|
|
|
import data.DataBase;
|
|
|
import data.Director;
|
|
|
import data.Movie;
|
|
|
+import data.User;
|
|
|
import data.comperators.MovieComparatorRating;
|
|
|
|
|
|
public class Recomendations {
|
|
|
@@ -45,6 +48,25 @@ public class Recomendations {
|
|
|
Collections.sort(out, new MovieComparatorRating());
|
|
|
return out;
|
|
|
}
|
|
|
+
|
|
|
+ public ArrayList<Movie> likedByUserWhoLike(Movie m ,int limit){
|
|
|
+ if(limit > 200)
|
|
|
+ limit = 200;
|
|
|
+ HashMap<Movie,Integer> out = new HashMap<>();
|
|
|
+ for(User u : db.getUsers()) {
|
|
|
+ if(u.getRatings().containsKey(m.getId()) && u.getRatings().get(m.getId()) >= 5) {
|
|
|
+ u.getRatings().forEach((k,v) -> {
|
|
|
+ int users = 0;
|
|
|
+ if(out.containsKey(db.getMovieById(k)))
|
|
|
+ users = out.get(db.getMovieById(k));
|
|
|
+ if(v >= 5)
|
|
|
+ out.put(db.getMovieById(k),(users+1));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
public ArrayList<Movie> withGenre(String genre, int limit){
|
|
|
if(limit > 200)
|
|
|
limit = 200;
|