Преглед изворни кода

finished recomendations by movie and testing it simple in main

Phil пре 7 година
родитељ
комит
3583b0a5ba
3 измењених фајлова са 31 додато и 1 уклоњено
  1. 8 0
      MovieDB/src/data/DataBase.java
  2. 20 1
      MovieDB/src/logic/Recomendations.java
  3. 3 0
      MovieDB/src/main/Main.java

+ 8 - 0
MovieDB/src/data/DataBase.java

@@ -99,6 +99,14 @@ public class DataBase {
 			return null;
 		}
 		
+		public Movie getMovieByName(String name) {
+			for(Movie m : movies) {
+				if(m.getTitle().contains(name))
+					return m;
+			}
+			return null;
+		}
+		
 		public Director getDirectorByName(String name) {
 			for(Director d : directors) {
 				if(d.getName().equals(name))

+ 20 - 1
MovieDB/src/logic/Recomendations.java

@@ -16,6 +16,7 @@ import data.comperators.MovieComparatorRating;
 public class Recomendations {
 
 	private DataBase db = DataBase.getInstance();
+	private Movie bla;
 	
 	public ArrayList<Movie> withActor(Actor a , int limit){
 		if(limit > 200)
@@ -64,8 +65,26 @@ public class Recomendations {
 				});
 			}
 		}
-		
+		ArrayList<Movie> temp = new ArrayList<>();
+		while(out.size() != 0) {
+		out.forEach((k,v) -> {
+			int max = 0;
+			if(v > max) {
+				max = v;
+				bla = k;
+			}
+		});
+		out.remove(bla);
+		temp.add(bla);
+		}
+		Collections.sort(temp, new MovieComparatorRating());
+		ArrayList<Movie> ret = new ArrayList<>();
+		for(int i = 0;i < limit ;i++ ) {
+			ret.add(temp.get(i));
+		}
+		return ret;
 	}
+
 	
 	public ArrayList<Movie> withGenre(String genre, int limit){
 		if(limit > 200)

+ 3 - 0
MovieDB/src/main/Main.java

@@ -39,6 +39,9 @@ public class Main {
 					}
 					break;
 				case "--film":
+					for(Movie m : rec.likedByUserWhoLike(DataBase.getInstance().getMovieByName(s.substring(s.indexOf("=")+1).replaceAll("'", "").trim()), 20)) {
+						System.out.println(m);
+					}
 					break;
 				case "--limit":
 					break;