Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID

Categories

We have migrated to a new platform! Please note that you will need to reset your password to log in (your credentials are still in-tact though). Please contact lee@programmersheaven.com if you have questions.
Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

NullPointerException

AlketAlket Posts: 1Member
Hello everybody,
I have an application where i use TDA as Map and so I have a Map of Maps where I store keys and values as String and Double as you see from the code bellow. So a Map that stores other Maps where I store information of movies and ratings. Then in the Map that contains the other Maps i store as value the name of the person that have given this oppinion about movies . I have implemented a method that calculates the euclidean distance between two users and it functions but when I try to use the same method inside another method that calculates the same thin but between a user and all the others it gives me an NullPointerExeption despite it compiles well.
Can somebody give me an advice?

This is the code:

import java.util.*;

public class MRdati {

public static void main (String[]args){


Map ratesLR = new HashMap();

ratesLR.put("Lady in the water", 2.5);
ratesLR.put("Snakes on a plane", 3.5);
ratesLR.put("Just my luck", 3.0);
ratesLR.put("Superman returns", 3.5);
ratesLR.put("The night Listener", 3.0);
ratesLR.put("You me and Dupree", 2.5);



Map ratesGS = new HashMap ();

ratesGS.put("Lady in the water", 3.0);
ratesGS.put("Snakes on a plane", 3.5);
ratesGS.put("Just my luck", 1.5);
ratesGS.put("Superman returns", 5.0);
ratesGS.put("The night Listener", 3.0);
ratesGS.put("You me and Dupree", 3.5);

Map ratesMP = new HashMap ();

ratesMP.put("Lady in the water", 2.5);
ratesMP.put("Snakes on a plane", 3.5);
ratesMP.put("Just my luck", 1.5);
ratesMP.put("Superman returns", 3.5);
ratesMP.put("The night Listener", 4.0);
ratesGS.put("You me and Dupree", 3.5);

Map ratesCP = new HashMap ();

ratesCP.put("Lady in the water", 2.5);
ratesCP.put("Snakes on a plane",3.5 );
ratesCP.put("Just my luck ",3.0 );
ratesCP.put("Superman returns", 4.0);
ratesCP.put("The night Listener", 4.5);
ratesCP.put("You me and Dupree", 2.5);

Map ratesML = new HashMap ();

ratesML.put("Lady in the water", 3.0 );
ratesML.put("Snakes on a plane", 4.0 );
ratesML.put("Just my luck ", 3.0 );
ratesML.put("Superman returns", 3.0);
ratesML.put("The night Listener", 3.0);
ratesML.put("You me and Dupree", 2.0);

Map ratesJM = new HashMap ();

ratesJM.put("Lady in the water", 3.0 );
ratesJM.put("Snakes on a plane", 4.0 );
ratesJM.put("Just my luck ", 3.0 );
ratesJM.put("Superman returns", 5.0);
ratesJM.put("The night Listener", 3.0);
ratesJM.put("You me and Dupree", 3.5);

Map ratesT = new HashMap ();
ratesT.put("Lady in the water", 3.0 );
ratesT.put("Snakes on a plane", 4.5 );
ratesT.put("Just my luck ", 3.0 );
ratesT.put("Superman returns", 4.0);
ratesT.put("The night Listener", 3.0);
ratesT.put("You me and Dupree", 1.0);



Map> critics = new HashMap> ();

critics.put("Lisa Rose", ratesLR);
critics.put("Gene Seymour", ratesGS);
critics.put("Michael Phillips", ratesMP);
critics.put("Claudia Puig", ratesCP);
critics.put("Mick Lasale", ratesML);
critics.put("John Matthews", ratesJM);
critics.put("Toby", ratesT);
//System.out.println(critics.get("Lisa Rose"));
//System.out.println(critics.keySet());


MRdati mrd = new MRdati();
System.out.println("dist euclid " + mrd.D("Lisa Rose", "Gene Seymour", critics));
// calling the method ListaR() gives me the NullPointerException
MRdati mrd1 = new MRdati();
System.out.println("risultato "+ mrd1.ListaR(critics, "Lisa Rose"));


}
// these are the methods

public double D(String u1, String u2, Map > critics){

Map u1c = critics.get(u1);
Map u2c = critics.get(u2);
double d=0;


for (String film: u1c.keySet()){
double v1 = u1c.get(film); // per ogni stringa film trova il suo valore
double v2 = u2c.get(film);
if(v2 == 0)
continue;
d+=(v2-v1)*(v2-v1);
}

return Math.sqrt(d);
}

public double[] ListaR( Map > critics, String w1){
double []d = new double[critics.size()];
int i=0;
for (String critics_i: critics.keySet()){
d[i]=D(w1, critics_i, critics);
i++;
}
return d;
}

public Double [][] listaRlistaR(Map >critics){
int i=0;
Double [][] d2=null;
d2=new Double[critics.size()][critics.size()-1];
for(String s : critics.keySet()){
//d2[i] = ListaR(critics, s);
i++;
}
return d2;
}


}
Sign In or Register to comment.