Skip to main content

Utilizzare le raccolte

Obiettivi di apprendimento

Al completamento di questa unità, sarai in grado di:

  • Dichiarare e inizializzare una lista.
  • Illustrare due modi di aggiungere elementi a una lista.
Lo sapevi che puoi imparare dagli esperti? Guarda questo video per saperne di più sugli argomenti trattati in questo modulo:

Raccolte

Una raccolta è un tipo di variabile in cui è possibile memorizzare più elementi. Nel nostro esempio della preparazione del tè, abbiamo una zuccheriera che contiene diverse zollette di zucchero. Possiamo considerare la zuccheriera una raccolta e i cubetti sono gli elementi memorizzati nella raccolta.

Una zuccheriera con l'etichetta Raccolta. Le zollette di zucchero nella zuccheriera sono etichettate come elementi della raccolta.

Anche se ci sono tre tipi di raccolte in Apex (liste, insiemi e mappe), in questo modulo ci concentreremo sulle liste.  

Liste

In Apex, una lista è un gruppo ordinato di elementi dello stesso tipo, come una lista degli acquisti. 

  1. Zucchero
  2. Miele
  3. Latte

Ciascun elemento della lista degli acquisti è una stringa e occupa la propria posizione al suo interno. Per dichiarare una lista sono necessarie alcune cose. Dovrai utilizzare la parola riservata List, indicare il tipo di dati (il tipo di dati di tutti gli elementi deve essere lo stesso) racchiuso tra i caratteri <> e, infine, inserire la parola riservata new. Alla fine dell'istruzione è necessario aggiungere una coppia di parentesi. 

List <String> groceries = new List <String>();

Nota

Nota

Le parole riservate sono parole utilizzate nella programmazione che hanno un significato speciale e non possono essere usate come nomi delle variabili. Se per i nomi delle variabili utilizzi parole come String, False, null e molte altre, provocherai un errore di sintassi.

Dichiarare una lista vuota

  1. Nella Developer Console, fai clic su Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia il codice seguente e incollalo nella finestra Enter Apex Code (Inserisci codice Apex).
    //Declare the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is an empty list, ().
    System.debug('Groceries Value: ' + groceries);
  3. Seleziona la casella di controllo Open log (Apri registro) e fai clic su Execute (Esegui). Si apre la finestra Execution Log (Registro di esecuzione), in cui è visualizzato il risultato dell'esecuzione del codice.
  4. Seleziona la casella di controllo Debug Only (Solo debug) nella parte bassa della finestra.

Quando hai eseguito il codice, hai probabilmente notato che l'output era (). Questo accade perché non hai aggiunto elementi alla lista, che è vuota. Quando hai dichiarato la lista groceries, hai creato un unico spazio vuoto pronto per l'aggiunta di elementi. 

Un grande spazio vuoto denominato groceries.

Dichiarare una lista di dimensioni prestabilite

Se sappiamo esattamente quanti elementi deve contenere la lista, possiamo impostarne le dimensioni in fase di dichiarazione. Per farlo, dobbiamo includere le dimensioni tra parentesi quadre, [ ], dopo il tipo di dati, in questo modo: 

String[] groceries = new String[4];

Nota

Nota

In Apex, le liste possono essere dichiarate in diversi modi. In questo esempio abbiamo utilizzato la notazione delle array per impostare le dimensioni della lista.

In questa riga di codice è stata dichiarata una lista di stringhe denominata groceries e ne è stata impostata la dimensione su 4 stringhe. Questo è l'aspetto della lista groceries vuota:

Uno spazio denominato groceries, suddiviso in quattro elementi.

La posizione di un elemento nella sequenza è denominata indice. L'indice ci consente di fare riferimento ai singoli elementi. Probabilmente hai imparato a contare a partire dal numero uno. Tuttavia, in molti linguaggi di programmazione, si inizia a contare da zero. Quindi, quando la creiamo tramite il codice Apex, la nostra lista avrà l'aspetto seguente. 

  1. Zucchero
  2. Miele
  3. Latte

L'indice da utilizzare per fare riferimento agli elementi della lista sarà 0 per il tè, 1 per lo zucchero, 2 per il miele e così via. 

Il riferimento a un dato elemento della lista mediante l'indice (la sua posizione nella lista) avrà questo aspetto:

groceries[0];

  1. Nella Developer Console, fai clic su Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia il codice seguente e incollalo nella finestra Enter Apex Code (Inserisci codice Apex).
    String[] groceries = new String[4];
    System.debug('Initialized groceries: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Seleziona la casella di controllo Open log (Apri registro) e fai clic su Execute (Esegui). Si apre la finestra Execution Log (Registro di esecuzione), in cui è visualizzato il risultato dell'esecuzione del codice.
  4. Seleziona la casella di controllo Debug Only (Solo debug) nella parte bassa della finestra.

Il valore del primo elemento dell'elenco è null. Aggiungiamo degli elementi alla lista.

Inizializzare una lista

Inizializzare una lista vuol dire assegnare a quella lista dei valori iniziali. Esistono due modi di aggiungere elementi a una lista:

  1. Dichiarare la lista e inizializzarla.
    //Sets the first item in the list to 'Tea'
    List<String> groceries = new List<String>{'Tea'}; 
  2. Dichiarare una lista vuota e aggiungere gli elementi in un secondo momento.
    List<String> groceries = new List<String>();
    groceries.add('Tea');

Dichiarare e inizializzare una lista

La sintassi per inizializzare una lista con dei valori è uguale a quella utilizzata per dichiarare una lista vuota. La differenza sta nel fatto che, per aggiungere i valori, invece di utilizzare parentesi tonde ( ( ) ), si utilizzano parentesi graffe ( { } ). 

  1. Nella Developer Console, fai clic su Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia il codice seguente e incollalo nella finestra Enter Apex Code (Inserisci codice Apex).
    //Declare the groceries list
    List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
      
    //The output for this statement is Tea, Sugar, Honey, Milk
    System.debug('Groceries: ' + groceries);
  3. Seleziona la casella di controllo Open log (Apri registro) e fai clic su Execute (Esegui). Si apre la finestra Execution Log (Registro di esecuzione), in cui è visualizzato il risultato dell'esecuzione del codice.
  4. Seleziona la casella di controllo Debug Only (Solo debug) nella parte bassa della finestra.

Dichiarare una lista vuota e aggiungere gli elementi in un secondo momento

E se invece preferisci aggiungere gli elementi in un secondo momento? In Apex esistono metodi che consentono di operare sulle liste. Per aggiungere elementi alla lista groceries utilizziamo il metodo add.

  1. Nella Developer Console, fai clic su Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia il codice seguente e incollalo nella finestra Enter Apex Code (Inserisci codice Apex).
    //Create the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is null
    System.debug('Groceries: ' + groceries);
      
    //Use the add method to add an element to the list
    groceries.add('Tea');
    groceries.add('Sugar');
    groceries.add('Honey');
    groceries.add(2, 'Milk');
      
    //The output for this statement is Tea, Sugar, Milk, Honey
    System.debug('Groceries: ' + groceries);
  3. Seleziona la casella di controllo Open log (Apri registro) e fai clic su Execute (Esegui). Si apre la finestra Execution Log (Registro di esecuzione), in cui è visualizzato il risultato dell'esecuzione del codice.
  4. Seleziona la casella di controllo Debug Only (Solo debug) nella parte bassa della finestra.

Uno spazio denominato groceries suddiviso in quattro parti che contengono ciascuna un ingrediente: Tea (Tè), Sugar (Zucchero), Milk (Latte) e Honey (Miele).

Hai notato che tra groceries e add c'è un punto (".")? In Apex si utilizza la notazione con punti. Questa notazione viene utilizzata in diversi modi. Nella riga 8, colleghiamo il metodo add (fornito da Apex) alla lista groceries con un punto per aggiungere un elemento, Tea (Tè).

Nella riga 11 vediamo un altro modo di aggiungere elementi a una lista, ossia inserendoli in posizioni specifiche specificando l'indice: 

groceries.add(2, 'Milk');

Man mano che continui a scrivere codice Apex, imparerai a scegliere il metodo da utilizzare. Ma i concetti di base che imparerai in questa unità possono aiutarti a iniziare. 

Maggiori informazioni sul funzionamento delle liste

I diversi modi di aggiungere elementi a una lista producono risultati lievemente diversi, talvolta inaspettati. Prova questo esercizio.

  1. Nella Developer Console, fai clic su Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia il codice seguente e incollalo nella finestra Enter Apex Code (Inserisci codice Apex).
    String[] groceries = new String[4];
    System.debug('Groceries: ' + groceries);
      
    groceries.add('Tea');
    groceries.add('Sugar');
    System.debug('Added 2 items: ' + groceries);
      
    groceries.add(1, 'Honey');
    System.debug('Added Honey in index 1: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Seleziona la casella di controllo Open log (Apri registro) e fai clic su Execute (Esegui). Si apre la finestra Execution Log (Registro di esecuzione), in cui è visualizzato il risultato dell'esecuzione del codice.
  4. Seleziona la casella di controllo Debug Only (Solo debug) nella parte bassa della finestra.

I risultati sono interessanti:

Quattro eventi del registro di debug. Nella riga 2 groceries è stato inizializzato: (null, null, null, null). Nella riga 6 sono stati aggiunti 2 elementi: (null, null, null, null, Tea, Sugar). Per la riga 9 si legge: Added Honey in index 1 (Aggiunto Honey all'indice 1): (null, Honey, null, null, null, Tea, Sugar). Per la riga 11 si legge: Item 0: null (Elemento 0: null).

Quando, nelle righe 4 e 5, abbiamo aggiunto le due stringhe, non abbiamo specificato l'indice. Quindi, gli elementi Tea (Tè) e Sugar (Zucchero) sono stati aggiunti alla fine della lista, aumentandone le dimensioni da quattro a sei stringhe. Sulla riga 8 abbiamo specificato in modo esplicito l'indice 1 per l'elemento Honey (Miele). Quindi, perché questo elemento non è il primo della lista? Ricorda che, quando programmiamo, contiamo sempre a partire da 0 e non da 1. Sulla riga 11, il primo indice della lista è 0, che attualmente contiene il valore null

Scrivere codice assomiglia molto a risolvere un problema di matematica. C'è un'equazione, ma ci sono tanti modi diversi per fare la stessa cosa. In questa unità hai scoperto che ci sono diversi modi di operare con le liste in Apex. Sei tu a scegliere come fare per dichiarare una lista, inizializzarla o fare riferimento a un suo valore specifico. Troppe opzioni? Non ti preoccupare. Quando avrai acquisito maggiore familiarità con Apex, prova diversi modi di fare una cosa e scoprirai quale di questi metodi funziona meglio in determinate circostanze.

Risorse

Condividi il tuo feedback su Trailhead dalla Guida di Salesforce.

Conoscere la tua esperienza su Trailhead è importante per noi. Ora puoi accedere al modulo per l'invio di feedback in qualsiasi momento dal sito della Guida di Salesforce.

Scopri di più Continua a condividere il tuo feedback