Salve a tutti questo e' il mio primo post in questo forum.
Sto cercando di andare per gradi per raggiungere la soluzione del problema richiesto dal prof.
Testo:
Definire la classe SortedLinkedList che estende la classe LinkedList (vista a
lezione) PREMETTO CHE IO NON L'HO VISTA E NON SONO RIUSCITO AD AVERE APPUNTI
(sono uno studente lavoratore) e che mantiene ordinata la lista: ridefinire il metodo add() affinché inserisca gli elementi in ordine. Gli oggetti da inserire devono essere confrontabili e quindi devonoimplementare l’interfaccia Comparable.
Si ordini la lista in modo che il valore massimo sia in testa (first) e il valore minimo in coda (last). Verificare la correttezza dell’implementazione: per esempio usando sequenze di stringhe in ordine, in ordine inverso, casuali, uguali. Verificare con sequenze di 21 elementi Integer casuali, con valori compresi nell’intervallo [-30,30].
Sono riuscito a visualizzare i numeri come richiesto.
Ora cerco di capire come fare l'overdrive del metodo add() con compareTo().
Allego il codice con compilazione a buon fine (a scopo didattico) x chi e' interessato:
Codice:
import java.util.*;
public class SortedLinkedList extends LinkedList
{
private static int elementi;
public static void main ( String []args )
{
if(args.length > 0)
elementi = Integer.parseInt(args[0]);
else
elementi = 21;
System.out.println( "Prova su " + elementi + "elementi." );
LinkedList l = new LinkedList();
// riempi la lista di numeri a caso tra -30 e +30
ListIterator it_aggiunta = l.listIterator();
Random generatore=new Random();
for ( int i = 0; i < elementi; i++ )
{
int segno=generatore.nextInt(2);// 0 o 1
int n=generatore.nextInt(31);
if(n<15)
l.add(new Integer(- n ));
else
l.add(new Integer(n));
}
// stampa tutti i valori
System.out.println( "-Collezione completa:" );
stampaCollezione( l );
}
private static void stampaCollezione
( Collection c )
{
Iterator i = c.iterator();
while ( i.hasNext() )
{
System.out.println( i.next() );
}
}
Se qualcuno vuole darmi qualche dritta e' ben accetto.

Rispondi quotando