NullPointer. in einer Datenstruktur

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi Netzbewohner,

irgendwie hat sich hier eine NullPointerException eingeschlichen, umgehen kann ich es....aber verstehen tue ich es nicht wirklich.
Kann mir jemand erklären was hier schief läuft?

greets
metalfan

Code:
import java.util.*;

public class JavaForum {
	
	private List<Map<Integer, Map<String, List<Integer>>>> test;
	
	
	public JavaForum(){
		test= new LinkedList
			<Map<Integer, Map<String, List<Integer>>>>();
	
		for (int n=0; n<5; n++){
			test.add(createOuterMap(n));
		}
	}	
	

	
	private  void test10(){
		for (Map<Integer, Map<String, List<Integer>>> x : test) {
           

////////////////////////////////////////////////////////////////////////////////// Dieses Konstrukt funktioniert
			/*
			int key = 0;
            Iterator<Integer> iterator = x.keySet().iterator();
            if (iterator.hasNext()) {
            	key = iterator.next();
            }
            for (Integer r : x.get(key).get("Js")) {
                    System.out.println(r);
            }*/
/////////////////////////////////////////////////////////////////////////////////Das hier nicht		
			for (Integer r : x.get(1).get("Js")) {
                System.out.println(r);
			}
			
		}
	}
	
	private List<Integer> createList(int start){
		List<Integer> test = new LinkedList<Integer>();
		for (int n=start;n<(start+5);n++)
				test.add(n);
		return test;
	}
	
	private Map<String, List<Integer>> createInnerMap(){
		Map<String, List<Integer>> tmp = new TreeMap<String, List<Integer>>();
		tmp.put("Outputs", createList(10));
		tmp.put("Js", createList(20));
		tmp.put("Ks", createList(30));
		tmp.put("something", createList(40));
		return tmp;
	}
	
	private Map<Integer, Map<String, List<Integer>>> createOuterMap(int number){
		Map<Integer, Map<String, List<Integer>>> 
		tmp = new TreeMap
		   <Integer, Map<String, List<Integer>>>();
		//1 mit Integer.parseInt(sometextfield.getText()) tauschen
		tmp.put(number, createInnerMap());
		return tmp;
	}
	
	public static void main(String[] args){
		JavaForum a = new JavaForum();	
		a.test10();
	}
}
 
Ich würd tippen, dass in Map x nicht immer ein Element @ pos. 1 vorhanden ist.
In dem Teil mit dem Iterator hängt der Key von der äußeren Schleife ab, in dem Teil mit x.get(1) versuchst du immer auf pos. 1 zuzugreifen, die es aber evtl. oder scheinbar nicht gibt.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben