È uscito il Corso Java Completo — usa il coupon JAVA2026 (fino al 30 giugno)
Torna al blog

Cosa sono le strutture dati

Cosa sono le strutture dati spiegate semplice: array, liste, dizionari, stack e code. Esempi di codice e quando usare ognuna per scrivere programmi migliori.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

4 min di lettura

Quando inizi a programmare ti accorgi presto che gestire i dati nel modo giusto fa tutta la differenza. Salvare una lista di nomi, associare un prezzo a un prodotto, gestire una coda di operazioni: per ognuna di queste cose esiste lo strumento giusto.

In questo articolo ti spiego cosa sono le strutture dati, quali sono le più comuni e quando usarle, con esempi di codice semplici.

Cosa sono le strutture dati in parole semplici

Una struttura dati è un modo organizzato di memorizzare e gestire dati in un programma, scelto in base a come hai bisogno di accedere a quei dati e modificarli. In pratica è il "contenitore" giusto per le informazioni che stai trattando.

Immagina di dover organizzare degli oggetti in casa. Per i libri usi una libreria, per i calzini un cassetto, per i documenti importanti uno schedario. Ogni contenitore è ottimizzato per un uso diverso. Le strutture dati funzionano allo stesso modo nel codice.

Le strutture dati più comuni

Array e liste

Sono la struttura più intuitiva: una sequenza ordinata di elementi a cui accedi tramite un indice numerico.

frutta = ["mela", "banana", "ciliegia"]
print(frutta[0])     # mela
frutta.append("uva") # aggiungo in fondo

Usa le liste quando l'ordine conta e vuoi scorrere gli elementi uno a uno.

Dizionari (mappe)

Un dizionario associa una chiave a un valore. Perfetto quando vuoi cercare qualcosa rapidamente per nome invece che per posizione.

prezzi = {"mela": 0.50, "banana": 0.30}
print(prezzi["mela"])   # 0.50
prezzi["uva"] = 0.80    # aggiungo una nuova coppia

Cercare un valore per chiave è quasi istantaneo, anche con milioni di elementi.

Stack (pile)

Uno stack segue la regola LIFO (Last In, First Out): l'ultimo elemento inserito è il primo a uscire, come una pila di piatti.

pila = []
pila.append("A")   # inserisco
pila.append("B")
print(pila.pop())  # B, l'ultimo entrato esce per primo

Gli stack si usano per gestire il pulsante "indietro" del browser o l'annulla (undo) negli editor.

Code (queue)

Una coda segue la regola FIFO (First In, First Out): il primo arrivato è il primo servito, come alla cassa del supermercato.

from collections import deque
coda = deque()
coda.append("primo")
coda.append("secondo")
print(coda.popleft())  # primo

Le code servono a gestire stampe in attesa, messaggi da elaborare e molto altro.

Perché scegliere la struttura giusta conta

La stessa operazione può essere velocissima o lentissima a seconda della struttura che usi. Cercare un nome in una lista significa scorrerla tutta; cercarlo in un dizionario è immediato. Questa differenza di efficienza si misura con la notazione Big O, che ti dice come cresce il costo di un'operazione all'aumentare dei dati.

Ecco una guida rapida:

  • Liste: dati ordinati da scorrere o accedere per posizione.
  • Dizionari: ricerche rapide per chiave univoca.
  • Stack: quando ti serve l'ultimo elemento inserito.
  • Code: quando serve rispettare l'ordine di arrivo.

Strutture dati e algoritmi vanno insieme

Strutture dati e algoritmi sono due facce della stessa medaglia. Un buon algoritmo sfrutta la struttura dati giusta per essere efficiente. Per questo, quando studi la programmazione, conviene impararli insieme: prima capisci come organizzare i dati, poi come manipolarli al meglio.

Molti linguaggi offrono queste strutture già pronte. In Python e in JavaScript, per esempio, liste e dizionari sono integrati e pronti all'uso fin dal primo giorno.

In sintesi

Le strutture dati sono i contenitori che usi per organizzare le informazioni nei tuoi programmi. Array, dizionari, stack e code coprono la maggior parte dei casi quotidiani, e scegliere quella giusta rende il codice più semplice ed efficiente.

Vuoi imparare a usare le strutture dati con esercizi pratici e in modo guidato? Trovi tutto nei corsi di CodeGrind, pensati per chi parte da zero.