|
LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Fondamenti di Informatica A - II° Modulo |
|
|
Aggiungere alla classe DoubleList un metodo: public void stampa().
Il metodo stampi a video il contenuto di tutti gli elementi della lista il cui
oggetto x non comincia per "T".
class DListNode {
protected A item; protected
DListNode next; protected DListNode prev;
public DListNode(A o) { item = o; next = null; prev = null; }
public DListNode getPrev() { return prev; }
public void setPrev(DListNode prev) { this.prev = prev; }
public DListNode getNext() { return next; }
public void setNext(DListNode next) { this.next = next; }
public A getItem() { return item; }
public double value() { return Math.random();}
}
public class DoubleList {
protected int size;protected DListNode first, last;
public DoubleList() { size = 0; first = last = null; }
public void insert(Object o) {
DListNode node = new DListNode(o);
node.setNext(first); node.setPrev(null);
if (first!=null) first.setPrev(node);
first = node;
if(last==null) last = node; size++; }
}
class A {
String x; int[] y; JButton z;
public String toString() { System.out.println("Contenuto: "+x+y+z); return (x+y+z);}
}
Si noti la implementazione della toString
per la classe A. Essa consente di ottenere sia una indicazione sull'output e
anche di restituire una stringa, il cui inizio coincide con la stringa che costituisce
il contenuto di x.
Gli altri campi (trasformati in stringa) vengono inseriti subito dopo.
Quindi se chiediamo il metodo toString ad una istanza, otteniamo la stringa, come primo componente.
(se poi vogliamo anche considerare la visibilità della classe A, possiamo anche pensare che sia nello stesso package delle altre, e con visibilità package).
Il metodo stampa consiste di una esplorazione della lista (considerando i diversi nodi, uno dopo l'altro) e considerando per la stampa solo i nodi che soddisfano la condizione richiesta.
public void stampa{
DlistNode temp = first;
while (temp != null)
{
if temp.getItem (). toString(). CharAT(0) != 'T')
System.out.println (temp.getItem ()); temp = temp.next;
}
}