nord vpnnord vpn
Ad

Untitled

mail@pastecode.io avatar
unknown
java
a month ago
1.7 kB
3
Indexable
Never
class menuRecommendations implements IMenuRecommendations{
    HashMap<Integer,float> ratings = new HashMap<>();
	HashMap<Integer,String> item = new HashMap<>();
	HashMap<Integer,Integer> numberOfRatings = new HashMap<>();
	
	Integer dealOfTheDay = null;
	Set<Integer> outOfStock = new HashSet<>();
	
	public void addItem(int id,String displayName){
	    item.add(id,displayName);
	}
	
	public void getRecommendedItem(){
	    if(dealOfTheDay == null){
	        if(ratings.size()==0){
	            System.out.println("N/A");
	        }
	        else{
	            float maxRating = -1f, maxId = 0;
	            for(int id:ratings.keySet()){
	                if(maxRating<rating.get(id) && outOfStock.contains(id)==false){
	                    maxRating = ratings.get(id);
	                    maxId = id;
	                }
	            }
	            System.out.print(maxId+" "+item.get(maxId)+" Rating: "+ratings.get(maxId));
	        }
	    }
	    else if(outOfStock.contains((int)dealOfTheDay)==false){
	        System.out.println("N/A");
	    }
	    else{
	            System.out.print(dealOfTheDay+" "+item.get(dealOfTheDay)+" Rating: "+ratings.get(dealOfTheDay));
	    }
	}
	
	public void outOfStock(int itemId){
	    ratings.remove(itemId);
	    if(itempId==dealOfTheDay) itempId=null;
	}
	
	public void makeDealOfTheDay(int itempId){
	    dealOfTheDay = itemId;
	}
	
	public void rateItem(int itemId,int rating){
	    numberOfRatings.add(itempId,numberOfRatings.getOrDefault(itempId,0)+1);
	    ratings.add(itempId,(ratings.getOrDefault(itempId,0)*(numberOfRatings.get(itempId)-1)+rating)/(numberOfRatings));
	}
	
	public void restockItem(int itemId){
	    if(outOfStock.contains(itemId)) outOfStock.remove(itempId);
	}
}

nord vpnnord vpn
Ad