Un elenco Java è par­ti­co­lar­men­te adatto a scenari in cui la di­men­sio­ne dell’insieme di dati non è nota in anticipo o può cambiare nel tempo. Ti mo­stre­re­mo esempi concreti di utilizzo degli elenchi e di quali ope­ra­zio­ni è possibile eseguire con essi.

A cosa servono gli elenchi Java?

Gli elenchi sono una delle strutture dati di base della pro­gram­ma­zio­ne Java e hanno un’ampia gamma di ap­pli­ca­zio­ni. Con­ten­go­no elementi in una sequenza ordinata che possono essere aggiunti, mo­di­fi­ca­ti, can­cel­la­ti o in­ter­ro­ga­ti. In un elenco Java, è possibile avere oggetti di classi diverse. È anche possibile me­mo­riz­za­re elementi duplicati o nulli. Inoltre, queste liste sup­por­ta­no classi e metodi generici, il che ga­ran­ti­sce la sicurezza dei tipi.

Uno degli ambiti d’uso degli elenchi è nelle ap­pli­ca­zio­ni di database, dove sono uti­liz­za­ti per me­mo­riz­za­re e accedere ai dati re­sti­tui­ti dalle query. Nelle in­ter­fac­ce grafiche, gli elenchi Java sono spesso uti­liz­za­ti per vi­sua­liz­za­re una lista di elementi, ad esempio le opzioni di un menu a discesa o i diversi articoli di un negozio online.

Gli elenchi Java sono in­di­spen­sa­bi­li anche negli algoritmi e nelle strutture di dati. Vengono uti­liz­za­ti nell’im­ple­men­ta­zio­ne di algoritmi di or­di­na­men­to, algoritmi di ricerca o strutture di stack e code. Nelle ap­pli­ca­zio­ni di rete, gli elenchi possono con­tri­bui­re a fa­ci­li­ta­re la gestione delle con­nes­sio­ni e dei socket.

I metodi dell’elenco Java

Java List ap­par­tie­ne all’in­ter­fac­cia Collection e deve essere importato dal pacchetto java.util. Le classi di im­ple­men­ta­zio­ne includono gli ArrayList in Java, Lin­ked­Li­st, Vector e Stack. È possibile di­chia­ra­re le varie istanze dell’elenco come segue:

List linkedList = new LinkedList(); // LinkedList
List arrayList = new ArrayList(); // ArrayList
List vecList = new Vector(); // Vector
List stackList = new Stack(); //Stack
Java

Di seguito ti pre­sen­tia­mo alcuni dei metodi più im­por­tan­ti uti­liz­za­ti in relazione agli elenchi Java:

  1. int size(): determina il numero di elementi di un elenco.
  2. void add(int index, E element): aggiunge un elemento in una posizione specifica.
  3. boolean isEmpty(): verifica se l’elenco è vuoto.
  4. void clear(): rimuove tutti gli elementi dall’elenco.
  5. boolean contains(Object o): re­sti­tui­sce il valore true se contiene l’oggetto o.
  6. boolean add(E e): aggiunge l’elemento spe­ci­fi­ca­to alla fine dell’elenco.
  7. boolean remove(Object o): rimuove la prima oc­cor­ren­za di un par­ti­co­la­re elemento.
  8. E get(int index): re­sti­tui­sce l’elemento all’indice indicato.
  9. E set(int index, E element): so­sti­tui­sce o inserisce un elemento al ri­spet­ti­vo indice.
  10. Object[] toArray(): re­sti­tui­sce un array con gli elementi dell’elenco.
  11. List<E> subList(int fromIndex, int toIndex): re­sti­tui­sce una sot­to­li­sta che comprende gli elementi nell’in­ter­val­lo spe­ci­fi­ca­to.
  12. default void replaceAll(UnaryOperator<E> operator): metodo standard in Java 8 che applica gli operatori Java unari a ciascun elemento e so­sti­tui­sce il risultato con il ri­spet­ti­vo elemento.

Casi d’uso tipici degli elenchi Java

Di seguito vengono il­lu­stra­ti gli usi più comuni di un elenco Java. Tra questi, le con­ver­sio­ni da array a elenchi e viceversa, nonché l’or­di­na­men­to, il recupero o la modifica di elementi.

Con­ver­ti­re un array in un elenco

Per con­ver­ti­re in un array, puoi eseguire un ciclo at­tra­ver­so un elenco e uti­liz­za­re il metodo .add() per ag­giun­ge­re gli elementi all’array uno per uno.

import java.util.*;
    public class ArrayToList{
      public static void main(String args[]){
      // Creating Array
      String[] colors={"blue","green","red","yellow"};
      System.out.println("Array: "+Arrays.toString(colors));
      //Converting Array to List
      List<String> list=new ArrayList<String>();
      for(String color: colors){
        list.add(color);
      }
      System.out.println("List: "+list);
      }
    }
Java

Il risultato è il seguente:

Array: [blue, green, red, yellow]
List: [blue, green, red, yellow]
Java

Con­ver­ti­re un elenco in un array

Un elenco può essere con­ver­ti­to in un array con il metodo toArray():

import java.util.*;
    public class ListToArray{
      public static void main(String args[]){
       List<String> days = new ArrayList<String>();
       days.add("Monday");
       days.add("Tuesday");
       days.add("Wednesday");
       days.add("Thursday");
       days.add("Friday");
       days.add("Saturday");
       days.add("Sunday");
       // Converting ArrayList to Array
       String[] array = days.toArray(new String[days.size()]);
       System.out.println("Array: "+Arrays.toString(array));
       System.out.println("List: "+days);
      }
    }
Java

Dal risultato si nota che i contenuti dell’array e dell’elenco sono identici:

Array: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
List: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
Java

Re­cu­pe­ra­re e mo­di­fi­ca­re gli elementi di un elenco Java

Con il metodo get() si può accedere a un elemento in un indice specifico, mentre con set() un oggetto può essere so­sti­tui­to in una posizione spe­ci­fi­ca­ta.

import java.util.*;
    public class ListExample{
      public static void main(String args[]){
      // Creating a List
      List<String> letters=new ArrayList<String>();
      // Adding elements
      letters.add("a");
      letters.add("b");
      letters.add("c");
      // get()
      System.out.println("Element at index 1: "+letters.get(1));
      // set()
      letters.set(2, "d");
      for(String letter: letters)
      System.out.println(letter);
      }
    }
Java

Poiché in Java il conteggio inizia dall’indice 0, si ottiene il seguente risultato:

Element at index 1: b
a
b
d
Java

Ordinare un elenco

Per ordinare un elenco Java, possiamo uti­liz­za­re il metodo .sort() della classe Collection. Si itera l’elenco con un ciclo e si vi­sua­liz­za­no gli elementi nella console in ordine:

import java.util.*;
    class SortArrayList{
      public static void main(String args[]){
      // Creating a list of numbers
      List<Integer> numbers=new ArrayList<Integer>();
      numbers.add(4);
      numbers.add(57);
      numbers.add(92);
      numbers.add(26);
      // Sorting
      Collections.sort(numbers);
      for(Integer number: numbers)
        System.out.println(number);
      }
    }
Java

I numeri dell’elenco Java vengono vi­sua­liz­za­ti sullo schermo in ordine crescente:

4
26
57
92
Java
Vai al menu prin­ci­pa­le