Java Beginners

Moderators: zibadian
Number of threads: 1233
Number of posts: 2675

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
NullPointerException Posted by Alket on 7 Jun 2012 at 4:20 AM
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 <String , Double> ratesLR = new HashMap<String , Double >();

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 <String , Double> ratesGS = new HashMap <String , Double >();

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 <String , Double> ratesMP = new HashMap <String , Double >();

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 <String , Double> ratesCP = new HashMap <String , Double >();

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 <String , Double> ratesML = new HashMap <String , Double >();

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 <String , Double> ratesJM = new HashMap <String , Double >();

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 <String , Double> ratesT = new HashMap <String , Double >();
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<String, Map<String, Double>> critics = new HashMap<String, Map<String, Double>> ();

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 <String,Map<String, Double>> critics){

Map <String, Double> u1c = critics.get(u1);
Map<String, Double> 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 <String,Map<String, Double>> 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 <String,Map<String, Double>>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;
}


}



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.