Java: LinkedList con Collection

Vedremo come utilizzare le liste concatenate grazie alle Collection che Java mette a disposizione risparmiando tempo e fatica!

Dopo aver visto in Liste Parte I, Liste Parte II e Liste Parte III come creare manualmente una struttura dati, nello specifico le liste, spiegheremo ora le fantastiche funzionalità delle collezioni che il java mette a dispozione.
Il framework delle collezioni java permette di utilizzre strutture dati già pronte insieme agli algoritmi necessari per operarvi.
I programmatori possono così utilizzare le strutture dati senza preoccupazioni su come implementarle.
Le collezioni sono standardizzate quindi posso essere facilmente condivise dalle applicazioni.
Classi e interfacce del framework collection sono contenute nel package java.util che dovrà essere quindi incluso nei nostri file.java.
Possiamo definire una collezione come una struttura dati che può contenere riferimenti ad altri oggetti.
Le interfacce dichiarano le operazioni che possono essere eseguite con ogni collezione.
Una List è dunque una collezione ordinata che può contenere oggetti duplicati, l’indice iniziale del primo elemento di una List è zero.
L’interfaccia List è implementata in varie classi, noi vedremo nel seguito la classe LinkedList.

Il programma seguente crea due LinkedList contenenti parole ed effettua alcune operazioni elementari

Il file è salvato come TestaListaColl.java

import java.util.List;

import java.util.LinkedList;

import java.util.ListIterator;

 
public class TestaListaColl

{

   private static final String parole[] = { “ciao”, “a tutti”, 

      “benvenuti”, “in”, “techfree”, “lady_inf” };

   private static final String parole2[] = { “vedremo”, “come”, 

      “utilizzare”, “le”, “collection”, “java” };

                  

   // imposta gli oggetti LinkedList

   public TestaListaColl()

   {

      List< String > lista1 = new LinkedList< String >(); 

      List< String > lista2 = new LinkedList< String >();

 
      // aggiunge elementi alla lista1

      for ( String parola : parole )

         lista1.add( parola );

 
      // aggiunge elementi alla lista2

      for ( String parola : parole2 )

         lista2.add( parola );

      // concatenare le due liste, aggiunge cioè la lista2 in coda alla lista1

      lista1.addAll( lista2 );

      lista2 = null; // rilascia le risorse occupate da lista2

      stampaContenutoLista( lista1 ); // stampa gli elementi della lista1

 
      convertiInMaiuscolo( lista1 ); // converte tutti gli elementi in lettere maiuscole

      stampaContenutoLista( lista1 ); // stampa gli elementi di lista1

 
      System.out.print( “\\nEliminazione delle parole dalla 4 alla 6…” );

      rimuoviParole( lista1, 4, 7 ); // rimuove gli elementi 4-7 dalla lista (il primo elemento è zero!)

      stampaContenutoLista( lista1 ); // print list1 elements

      stampa_a_rovescio( lista1 ); // stampa la lista in ordine inverso

   }

 
   // stampa il contenuto della lista

   public void stampaContenutoLista( List< String > lista )

   {

      System.out.println( “\\nlista: ” );

   

      for ( String parola : lista )

         System.out.printf( “%s “, parola );

 
      System.out.println();

   }                                               

 
   // individua le strinche nella lista e le converte in maiuscolo

   private void convertiInMaiuscolo( List< String > lista )

   {

      ListIterator< String > iterator = lista.listIterator();

 
      while ( iterator.hasNext() ) 

      {

         String parola = iterator.next();  // prendi l’elemento

         iterator.set( parola.toUpperCase() ); // convertilo in maiuscolo

      } 

   }

 
   private void rimuoviParole( List< String > lista, int inizio, int fine )

   {

      lista.subList( inizio, fine ).clear();  // rimuove gli elementi nell’intervallo indicato

   } 

 
   // stampa la lista in ordine inverso

   private void stampa_a_rovescio( List< String > lista )

   {

      ListIterator< String > iterator = lista.listIterator( lista.size() );

 
      System.out.println( “\\nLista in ordine inverso:” );

 
 
      while ( iterator.hasPrevious() ) 

         System.out.printf( “%s “, iterator.previous() ); 

   }

   

   public static void main( String args[] )

   {

      new TestaListaColl();

   }                                   

}

Compliare ed eseguire per vederne le funzionalita’

🙂

Please follow and like us: