PDA

View Full Version : [JAVA] Togliere en lemento a un array


lefantome
20-07-2010, 21:28
Sono fuso, il programma mi da un nullpointer del cavolo.

Ora vista da qui questa cosa che ho aggiunto sembra funzionare, è una roba da prime volte. ma magari proprio per questo non vedo l'errore.



len é un membro della superclasse come l'array neighbors ed è la sua lunghezza.

Voglio rimuovere un elemento da neighbors e di conseguenza ridimensionarlo

public boolean remNeighbor(Node n)
{
boolean found = false;
for (int i = 0; i < len; i++)
{
if (neighbors[i] == n)
{neighbors[i] =null;
found = true;}
else
{ return false;}
}


if (found == true)
{
len--;
Node[] temp = new Node[len];
int nw = 0;

for (int i = 0; i<neighbors.length;i++)
{
if (neighbors[i] !=null)
{
temp[nw] = neighbors[i];
nw++;
}
}



neighbors = temp;
}

return true;
}



:muro:

Isildur84
20-07-2010, 21:44
Ad occhio, spero di non sbagliarmi, c'è un errore nel primo ciclo.

Con return false, appena trova un elemento con valore diverso da n esce dalla tua funzione, quindi o l'elemento da eliminare è sempre in posizione 0 oppure la tua funzione non funziona.

lefantome
20-07-2010, 21:57
gracias. mi domando cosa ci stava a fare quel return false :rotfl:

vediamo se era quello il problema, intanto ho isolato parzialmente la fonte dell'errore (purtroppo lavoro via gedit e ant :( )


EDIT: FAAAAAAAAAAAAAAAAAAA!!!!

madò che errore idiota.

banryu79
21-07-2010, 08:13
Ormai l'avrai già visto, ma anche il return finale del metodo va sistemato ;)