|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 284
|
[JAVA] Togliere en lemento a un array
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 Codice:
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;
}
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2005
Città: Torino
Messaggi: 144
|
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. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 284
|
gracias. mi domando cosa ci stava a fare quel return false
![]() 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. Ultima modifica di lefantome : 20-07-2010 alle 22:59. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ormai l'avrai già visto, ma anche il return finale del metodo va sistemato
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:07.




















