package recsys.pb.calculator;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import recsys.pb.main.ratingsData;
public class calculate_ratings {
/**
*
* @param UserRatings
* @param UserCompare
* @return
*/
public static Map<Integer,Integer> findYvalue(Collection<ratingsData> UserRatings, Map<Integer,Double> UserCompare) {
//Map of MovieID and Rating
Map<Integer,Integer> MovieRatings = new TreeMap<Integer, Integer>();
try {
for (Iterator<ratingsData> ii=UserRatings.iterator();ii.hasNext();)
{
ratingsData rd = ii.next();
if (UserCompare.containsKey(rd.getUserId()))
{
if( MovieRatings.containsKey(rd.getMovieId()))
{
MovieRatings.put(rd.getMovieId(), MovieRatings.get(rd.getMovieId())+1);
}
else {
//First time
MovieRatings.put(rd.getMovieId(),1);
}
}
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return MovieRatings;
}
/**
*
* @param UserRatings
* @param UserCompare
* @return
*/
public static Map<Integer,Integer> findXBarvalue(Collection<ratingsData> UserRatings, Map<Integer,Double> UserCompare) {
Integer XbarCount = 0;
Map<Integer,Integer> advMovieRatings = new TreeMap<Integer, Integer>();
Map<Integer,Integer> XbarArray = new TreeMap<Integer, Integer>();
try {
for (Iterator<ratingsData> ii=UserRatings.iterator();ii.hasNext();)
{
ratingsData rd = ii.next();
if (!UserCompare.containsKey(rd.getUserId())) {
if (XbarArray.containsKey(rd.getUserId()))
{
XbarCount = XbarCount + 1;
XbarArray.put(rd.getUserId(),XbarCount);
} else {
XbarArray.put(rd.getUserId(),XbarCount);
}
if( advMovieRatings.containsKey(rd.getMovieId()))
{
advMovieRatings.put(rd.getMovieId(), advMovieRatings.get(rd.getMovieId())+1);
} else {
//First time
advMovieRatings.put(rd.getMovieId(),1);
}
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
//Print array dimension
//System.out.println(XbarArray.size());
return advMovieRatings;
}
public static Integer XBarvalue(Collection<ratingsData> UserRatings, Map<Integer,Double> UserCompare) {
Integer XbarCount = 0;
Map<Integer,Integer> XbarArray = new TreeMap<Integer, Integer>();
try {
for (Iterator<ratingsData> ii=UserRatings.iterator(); ii.hasNext();)
{
ratingsData rd = ii.next();
if (!UserCompare.containsKey(rd.getUserId()))
{
if (XbarArray.containsKey(rd.getUserId()))
{
XbarCount = XbarCount + 1;
XbarArray.put(rd.getUserId(),XbarCount);
} else {
XbarArray.put(rd.getUserId(),XbarCount);
}
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return XbarArray.size();
}
}