Sobes.tech
Junior

Quali collezioni esistono in Java?

sobes.tech AI

Risposta dell'AI

Il framework delle collezioni di Java fornisce molte collezioni per memorizzare e gestire dati. Le principali interfacce e le loro implementazioni:

  • Collection: interfaccia radice.
    • List: collezione ordinata che permette duplicati.
      • ArrayList: basata su array, accesso rapido per indice, inserimento/eliminazione lento nel mezzo.
      • LinkedList: basata su lista doppiamente collegata, inserimento/eliminazione rapido, accesso lento per indice.
      • Vector: equivalente thread-safe di ArrayList, obsoleto.
      • Stack: basato su Vector, principio LIFO.
    • Set: collezione di elementi unici, senza ordine specifico (eccetto SortedSet).
      • HashSet: basato su tabella hash, accesso e inserimento/eliminazione rapidi.
      • LinkedHashSet: mantiene l'ordine di inserimento.
      • TreeSet: memorizza gli elementi in ordine ordinato.
    • Queue: collezione di elementi, spesso usata per memorizzare elementi prima dell'elaborazione in FIFO.
      • PriorityQueue: elementi estratti in ordine di priorità.
      • ArrayDeque: coda a doppia estremità.
    • Deque: coda a doppia estremità, si possono aggiungere e rimuovere elementi da entrambi i lati.
  • Map: memorizza coppie chiave-valore, le chiavi sono uniche.
    • HashMap: basata su tabella hash, accesso rapido per chiave.
    • LinkedHashMap: mantiene l'ordine di inserimento o accesso.
    • TreeMap: memorizza coppie in ordine ordinato per chiave.
    • Hashtable: equivalente thread-safe di HashMap, obsoleto.

Collezioni thread-safe:

  • Collections.synchronized*: wrapper su collezioni esistenti.
  • Concurrent*: pacchetto java.util.concurrent, collezioni con migliori prestazioni in ambienti concorrenti.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

E altre collezioni meno comuni.