Nord, Nord_Est,Nord_Ovest, ecc... sono tutti oggetti allocati nell' heap.
Se quel while dura tantissimo tu continui ad aggiungere elementi:
codice:
if(direzione.compareTo("Nord")==0){
					Nord.add(nodo2);
				}
				if(direzione.compareTo("Nord-Est")==0){
					Nord_Est.add(nodo2);
				}
				if(direzione.compareTo("Nord-Ovest")==0){
					Nord_Ovest.add(nodo2);
				}
				if(direzione.compareTo("Sud")==0){
					Sud.add(nodo2);
				}
				if(direzione.compareTo("Sud-Est")==0){
					Sud_Est.add(nodo2);
				}
				if(direzione.compareTo("Sud-Ovest")==0){
					Sud_Ovest.add(nodo2);
				}
				if(direzione.compareTo("Est")==0){
					Est.add(nodo2);
				}
				if(direzione.compareTo("Ovest")==0){
					Ovest.add(nodo2);
				}
Col risultato che le ArrayList Ovest,ecc... si gonfiano fino a occupare tutto l'heap.