NullPointerException - Programmers Heaven

Howdy, Stranger!

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

Categories

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.