Ver código fonte

modifications for data handling and comparator added

Phil 7 anos atrás
pai
commit
6d1fbf24c7

+ 18 - 2
MovieDB/src/data/DataBase.java

@@ -91,12 +91,28 @@ public class DataBase {
 			actors.add(a);
 		}
 		
+		public Actor getActorByName(String name) {
+			for(Actor a : actors) {
+				if(a.getName() == name)
+					return a;
+			}
+			return null;
+		}
+		
 		public void addDirector(Director d) {
 			directors.add(d);
 		}
 		
-		public void addUserRating(User u) {
-			
+		public void addUserRating(String name,int movie, int rating) {
+			for (User u : users) {
+				if(u.getName() == name) {
+					u.addRating(movie,rating);
+					return;
+				}
+			}
+			User nu = new User(name);
+			nu.addRating(movie, rating);
+			users.add(nu);
 		}
 		
 		public void printMovies() {

+ 3 - 0
MovieDB/src/data/Movie.java

@@ -17,6 +17,9 @@ public class Movie {
 		actors.add(a);
 	}
 	
+	public ArrayList<Actor> getActors(){
+		return actors;
+	}
 	public void addDirector(Director d) {
 		directors.add(d);
 	}

+ 16 - 0
MovieDB/src/data/comperators/MovieComparatorRating.java

@@ -0,0 +1,16 @@
+package data.comperators;
+
+import java.util.Comparator;
+
+import data.Movie;
+
+public class MovieComparatorRating implements Comparator<Movie>{
+	
+	@Override
+	public int compare(Movie a, Movie b) {
+		if(a.getRating() > b.getRating()) return 1;
+		if(a.getRating() < b.getRating()) return -1;
+		return 0;
+	}
+
+}

+ 11 - 3
MovieDB/src/logic/Recomendations.java

@@ -1,11 +1,13 @@
 package logic;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 
 import data.Actor;
 import data.DataBase;
 import data.Movie;
+import data.comperators.MovieComparatorRating;
 
 public class Recomendations {
 
@@ -14,9 +16,15 @@ public class Recomendations {
 	public ArrayList<Movie> withActor(Actor a , int limit){
 		if(limit > 200)
 			limit = 200;
-		HashMap<Integer, Integer> actings = db.getActings();
 		ArrayList<Movie> out = new ArrayList<>();
-		
-		return null;
+		for(Movie m : db.getMovies()) {
+			if(m.getActors().contains(a)) {
+				out.add(m);
+				if(out.size() >= limit)
+					return out;
+			}
+		}
+		Collections.sort(out, new MovieComparatorRating());
+		return out;
 	}
 }