diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" index 063689d..1b6e770 100644 --- "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" @@ -1,7 +1,57 @@ package com.school.faang.hashset.задача_6; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + public class Solution { public static void main(String[] args) { + RecommendationEngine recommendationEngine = new RecommendationEngine(); + + recommendationEngine.addVideo("A4", "100 km in mile"); + recommendationEngine.addVideo("Mr.Beast", "Super Strong"); + recommendationEngine.addVideo("A4", "Who run faster"); + recommendationEngine.addVideo("A4", "Best boll"); + recommendationEngine.addVideo("Cook together", "100 best resepiece"); + recommendationEngine.addVideo("Mr.Beast", "Who broke first"); + + Set subscriptions = Set.of("Mr.Beast", "A4", "Cook together"); + Set watchHistory = Set.of("100 km in mile", "Super Strong", "Who run faster"); + + System.out.println(recommendationEngine.generateFeed(subscriptions, watchHistory)); + } +} + +class RecommendationEngine { + private Map> videosByChannel; + + public RecommendationEngine() { + this.videosByChannel = new HashMap<>(); + } + + public void addVideo(String channelName, String videoTitle) { + if (videosByChannel.containsKey(channelName)) { + videosByChannel.get(channelName).add(videoTitle); + }else { + Set newset = new HashSet<>(); + newset.add(videoTitle); + + videosByChannel.put(channelName, newset); + } + } + + public List generateFeed(Set subscriptions, Set watchHistory) { + Set recommendations = new HashSet<>(); + + for (String channel : subscriptions) { + recommendations.addAll(videosByChannel.get(channel)); + } + + recommendations.removeAll(watchHistory); + return new ArrayList<>(recommendations); } }