Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: andreasn on 13-09-2012, 20:27:57



Title: Scorrere una lista
Post by: andreasn on 13-09-2012, 20:27:57
E' corretto scorrere una lista concatenata da un metodo esterno alla classe lista (sfruttando head)? Se sì, il nodo head andrebbe dichiarato public?

Esempio:
Code:
public class Lista {
    public Nodo head;
    public Lista() {
        head=null;
    }
    [...]
}

[...]
public static void main(String[] args) {
    Lista lista=new Lista();
    [...]
    Nodo p=lista.head;
    while (p!=null) {
        [...]
        p=p.next;
    }
}


Title: Re:Scorrere una lista
Post by: dawid on 14-09-2012, 10:05:18
per come la vedo io la puoi scorrere nel main ma eviterei l'accesso diretto a head... opterei piu per un getHead() a questo punto ovviamente con head privato...


Title: Re:Scorrere una lista
Post by: Ocelot92 on 15-09-2012, 09:48:40
Quoto. E' corretto scorrerla fuori dichiarandosi un metodo get per l'head. Tuttavia, ti serve davvero scorrerla al di fuori dalla classe?


Title: Re:Scorrere una lista
Post by: andreasn on 16-09-2012, 19:11:25
Grazie per le risposte. Forse posso risolvere in altro modo, ci devo pensare.


Title: Re:Scorrere una lista
Post by: W_doppio on 18-09-2012, 17:41:33
Grazie per le risposte. Forse posso risolvere in altro modo, ci devo pensare.

non ho la certezza che sia giusto ma per scorrere la lista secondo me si può fare così:
Code:

ListNode aux = myList.getHead();
        for(; aux.getNext()!= null; aux = aux.getNext())
              System.out.print(aux.getInfo());


Title: Re:Scorrere una lista
Post by: LtWorf on 29-09-2012, 14:24:15
Il metodo veramente corretto sarebbe implementare una classe che abbia l'interfaccia Iterator

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Iterator.html

e nella lista mettere una cosa tipo getNewIterator(), o semplicemente iterator() come si chiama nella lista di java.