CodeGym
Promozione
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Set: HashSet e TreeSet, unicità degli elementi

    JAVA 25 SELF
    Livello 26,Lezione 3
    In questa lezione analizziamo l’interfaccia Set in Java: in cosa differisce da List, come si garantisce l’unicità degli elementi, come funzionano le implementazioni HashSet (veloce, senza ordine) e TreeSet (ordinato), e quando scegliere una o l’altra struttura. Considereremo aspetti importanti su equals() e hashCode(), la gestione di null, esempi di compiti tipici (rimozione dei duplicati, verifica dell’unicità) ed errori frequenti.
    Disponibile
  • Generics: perché servono, sintassi di base

    JAVA 25 SELF
    Livello 26,Lezione 4
    Passiamo dalle collezioni «raw» al codice type-safe. Nella lezione analizziamo perché, prima dell’introduzione dei generics, le collezioni basate su Object portavano a errori a runtime ( ClassCastException), come i generics risolvono questo problema in fase di compilazione, come leggere e scrivere costrutti come List<String>, Map<String, Integer>, che cos’è l’operatore «diamond» <> e perché esiste il type erasure. Inoltre, esempi con classi generiche proprie e analisi degli errori tipici.
    Disponibile
  • Interfacce Collection, List, Set, Map: gerarchia

    JAVA 25 SELF
    Livello 27,Lezione 0
    Analizziamo le basi delle collezioni Java: l’interfaccia Collection e i suoi rami List, Set, Queue/ Deque, nonché la gerarchia separata di Map. Scoprirai perché Map non estende Collection, com’è la gerarchia, in cosa differiscono le implementazioni, quali metodi sono chiave e quando scegliere cosa. In chiusura — errori tipici e come evitarli.
    Disponibile
  • Iterable e Iterator: scorrere le collezioni

    JAVA 25 SELF
    Livello 27,Lezione 1
    In questa lezione analizziamo come lavorare con le interfacce Iterable e Iterator: cosa fa il metodo iterator(), come è organizzato «dietro le quinte» il ciclo for-each, quando e perché usare manualmente hasNext() e next(), come rimuovere elementi in modo sicuro tramite remove() senza ConcurrentModificationException, e anche come iterare correttamente una Map usando keySet(), values() ed entrySet(). Molti esempi pratici ed errori comuni per fissare i concetti.
    Disponibile
  • Queue, Deque, Stack: lavorare con code e pile

    JAVA 25 SELF
    Livello 27,Lezione 2
    In questa lezione analizziamo code e pile in Java: come funziona il principio FIFO e LIFO, in cosa differiscono Queue, Deque e Stack, perché nei progetti moderni conviene scegliere ArrayDeque e come usare in sicurezza i metodi offer/ poll/ peek e push/ pop/ peek. Mostreremo esempi con LinkedList, PriorityQueue, una mini‑app di stampa e uno stack di undo, e analizzeremo anche gli errori tipici.
    Disponibile
  • NavigableSet/NavigableMap

    JAVA 25 SELF
    Livello 27,Lezione 3
    In questa lezione analizziamo le collezioni ordinate e navigabili di Java: NavigableSet e NavigableMap. Vedremo in pratica come lavorare con gli intervalli tramite subSet/ headSet/ tailSet, come trovare gli elementi «più vicini» con lower, floor, ceiling, higher e come gestire gli estremi con pollFirst/ pollLast. Esamineremo le rappresentazioni inverse descendingSet/ descendingMap, le view «live» e i casi tipici (agende, priorità, scale). Come implementazioni useremo TreeSet e TreeMap.
    Disponibile
  • Wildcard dei generics

    JAVA 25 SELF
    Livello 27,Lezione 4
    In questa lezione analizziamo l’invarianza dei generics in Java, i limiti dei parametri di tipo ( extends/ super), i tipi jolly ? e la regola PECS («Producer Extends, Consumer Super»). Vedremo come scrivere metodi generici con i wildcard, come funziona il type erasure (cancellazione dei tipi), le limitazioni nell’uso di instanceof e degli array, nonché pratica con le collezioni e lo Stream API. Alla fine — errori comuni e come evitarli.
    Disponibile
  • Filtraggio degli elementi delle collezioni

    JAVA 25 SELF
    Livello 28,Lezione 0
    In questa lezione analizziamo la pratica del filtraggio delle collezioni in Java: approccio imperativo tramite il ciclo for, rimozione sicura durante l'iterazione con Iterator e il metodo remove(), nonché la soluzione moderna e concisa removeIf (Java 8+). Discuteremo perché si verifica ConcurrentModificationException, quando conviene creare una nuova lista e quali errori tipici si incontrano più spesso nella formulazione delle condizioni di filtraggio.
    Disponibile
  • Trasformazione delle collezioni

    JAVA 25 SELF
    Livello 28,Lezione 1
    In questa lezione analizziamo come eseguire in modo imperativo la trasformazione delle collezioni: da List<String> ottenere List<Integer> (per esempio, le lunghezze delle stringhe), come estrarre campi dagli oggetti del modello di dominio ( Product → nome/prezzo), come «appiattire» collezioni annidate tramite addAll() o cicli annidati, e come combinare filtraggio e trasformazione con if e metodi come startsWith. Infine vedremo errori tipici: modifica della collezione originaria, cast errato ( ClassCastException) e aspetti di efficienza.
    Disponibile
  • Eliminazione sicura degli elementi

    JAVA 25 SELF
    Livello 28,Lezione 2
    Nella pratica, la rimozione di elementi dalle collezioni porta spesso a ConcurrentModificationException. In questa lezione vedremo perché ciò accade durante l’iterazione tramite for-each, come rimuovere in modo sicuro con Iterator.remove(), a cosa serve ListIterator, quando scegliere removeIf (Java 8+) e come lavorare correttamente con Map. Alla fine — consigli pratici ed errori tipici.
    Disponibile
  • EnumSet/EnumMap

    JAVA 25 SELF
    Livello 28,Lezione 3
    In questa lezione analizziamo le collezioni specializzate per gli enum — EnumSet e EnumMap del pacchetto java.util: come sono implementate internamente (maschere di bit e indicizzazione per ordinal), in che cosa sono più veloci e compatte di HashSet/ HashMap, dove usarle (flag, tabelle di corrispondenza, automi finiti), quali insidie sono legate alla modifica degli enum e alla serializzazione, nonché un insieme di best practice ed errori tipici con esempi di codice esplicativi.
    Disponibile
  • LinkedHashSet/LinkedHashMap

    JAVA 25 SELF
    Livello 28,Lezione 4
    In questa lezione analizziamo le collection con ordine preservato: LinkedHashSet e LinkedHashMap. Scoprirai come mantengono l’ordine di inserimento e l’ordine di accesso, come costruire in poche righe una cache LRU tramite l’override di removeEldestEntry, quali sono i costi in memoria e prestazioni rispetto a HashSet/ HashMap, quando serve un ordine deterministico per test e report stabili, e anche perché per code/stack è meglio ArrayDeque rispetto a LinkedList. Alla fine — errori tipici e come evitarli.
    Disponibile
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 30
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym