gigippa
08-09-2008, 14:25
Ciao a tutti, devo creare un metodo di nome "inserisciDopoOgni(int valore, int in)" che inserisca dopo ogni occorrenza di "valore" un nuovo elemento contenente il dato "in" nella lista di partenza.
La lista è fatta così
public class MiaLista {
private class ListElem {
private int dato;
private ListElem next = null;
public int getDato() {
return dato;
}
public void setDato(int dato) {
this.dato = dato;
}
public ListElem getNext() {
return next;
}
public void setNext(ListElem next) {
this.next = next;
}
public boolean equals(int val) {
return dato == val;
}
}
private ListElem first;
public MiaLista() {
first = null;
}
}
E questo è il mio metodo. Non capisco perchè non mi aggiorni il primo 5 che compare. Mi aiutate? Grazie
public boolean inserisciDopoOgni(int valore, int in){
boolean found = false;
ListElem iterator = first;
while ((iterator.getNext()) != null)
if ((iterator.getNext()).equals(valore)) {
iterator = iterator.getNext();
ListElem elem = new ListElem();
elem.setDato(in);
elem.setNext(iterator.getNext());
iterator.setNext(elem);
found = true;
}
else
iterator = iterator.getNext();
return found;
}
La lista è fatta così
public class MiaLista {
private class ListElem {
private int dato;
private ListElem next = null;
public int getDato() {
return dato;
}
public void setDato(int dato) {
this.dato = dato;
}
public ListElem getNext() {
return next;
}
public void setNext(ListElem next) {
this.next = next;
}
public boolean equals(int val) {
return dato == val;
}
}
private ListElem first;
public MiaLista() {
first = null;
}
}
E questo è il mio metodo. Non capisco perchè non mi aggiorni il primo 5 che compare. Mi aiutate? Grazie
public boolean inserisciDopoOgni(int valore, int in){
boolean found = false;
ListElem iterator = first;
while ((iterator.getNext()) != null)
if ((iterator.getNext()).equals(valore)) {
iterator = iterator.getNext();
ListElem elem = new ListElem();
elem.setDato(in);
elem.setNext(iterator.getNext());
iterator.setNext(elem);
found = true;
}
else
iterator = iterator.getNext();
return found;
}