qui c'è tutto il codice dove ho scritto il metodo:
codice:
codice:
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;
}
public void insert(int val) {
ListElem elem = new ListElem();
elem.setDato(val);
elem.setNext(first);
first = elem;
}
public boolean isEmpty() {
return first == null;
}
public void printList() {
ListElem iterator = first;
System.out.print("Elementi: ");
while (iterator != null) {
System.out.print(iterator.getDato() + ",");
iterator = iterator.getNext();
}
System.out.println("");
}
public int estrai(int val){
int estratto = 0 ;
if(first == null)
{
return 0 ;
}
else
{
ListElem iterator = first ;
while(iterator.next != null)
{
if(iterator.next.dato == val)
{
estratto = iterator.dato ;
iterator = null ;
}
iterator = iterator.next ;
}
}
return estratto ;
}
qui c'è il main:
codice:
codice:
public class UsaMiaLista {
public static void main(String[] args) {
MiaLista lista = new MiaLista();
lista.insert(9);
lista.insert(30);
lista.insert(13);
lista.insert(1);
lista.insert(3);
lista.insert(4);
lista.insert(1);
lista.insert(1);
System.out.println("La lista contiene:");
lista.printList();
int a = lista.estrai(3) ;
System.out.println(a) ;
lista.printList();
}
}
e qui ti scrivo quello che mi dice la jvm:
La lista contiene:
Elementi: 1,1,4,3,1,13,30,9,
Exception in thread "main" java.lang.NullPointerException
at MiaLista$ListElem.access$100(MiaLista.java:3)
at MiaLista.estrai(MiaLista.java:78)
at UsaMiaLista.main(UsaMiaLista.java:19)
Premere un tasto per continuare . . .
spero di aver capito bene ciò che mi hai chiesto.grazie