Interface fonctionnelle et expressions Lambda en Java
Une interface fonctionnelle est une interface qui ne contient qu'une seule méthode abstraite. Ils ne peuvent avoir qu'une seule fonctionnalité à exposer.
Une interface fonctionnelle est une interface qui ne contient qu'une seule méthode abstraite. Ils ne peuvent avoir qu'une seule fonctionnalité à exposer.
Comprendre l'utilité des génériques pour la réutilisabilité et la sécurité de type. Maîtriser la création de classes, méthodes et interfaces génériques. Savoir utiliser les paramètres de type bornés (extends). Connaître le principe de type erasure (effacement des types).
Comprendre le principe des tables de hachage et leur implémentation avec HashMap. Maîtriser les opérations d'insertion, de recherche et de suppression. Connaître les bonnes pratiques (clés immutables, redéfinition de hashCode()/equals()).
Comprendre le fonctionnement d'un HashSet et son implémentation basée sur les tables de hachage. Savoir utiliser les opérations d'ajout, suppression, recherche et parcours. Maîtriser les constructeurs et les méthodes spécifiques. Connaître l'optimisation par arbres binaires (Java 8+).
Comprendre la structure de données des listes chaînées et leur implémentation en Java avec LinkedList. Savoir choisir entre ArrayList et LinkedList selon les besoins. Maîtriser les méthodes spécifiques aux listes chaînées (addFirst, addLast, removeFirst, removeLast, etc.).
Comprendre l'intérêt des listes dynamiques par rapport aux tableaux classiques. Maîtriser la création, l'ajout, la suppression, la modification et le parcours d'une ArrayList. Connaître les différences fondamentales entre tableaux et ArrayList.
Découvrir la classe java.util.Arrays et ses nombreuses méthodes utilitaires. Savoir trier, rechercher, remplir, comparer et copier des tableaux efficacement. Maîtriser les versions séquentielles (sort) et parallèles (parallelSort) de tri.
Comprendre la notion de tableau comme structure de données homogène. Maîtriser la déclaration, la création, l'initialisation et l'accès aux tableaux à une et deux dimensions. Savoir parcourir, passer et retourner des tableaux dans des méthodes. Connaître les particularités des tableaux irréguliers (ragged arrays).
Comprendre le pattern Singleton et ses cas d'usage. Maîtriser les différentes implémentations (basique, thread-safe, avec holder, enum). Connaître les avantages, les inconvénients et les alternatives modernes.
Comprendre les différents types de classes imbriquées en Java. Savoir quand et comment utiliser les classes statiques imbriquées, les classes internes, les classes locales et les classes anonymes. Maîtriser les règles d'accès et les cas d'usage spécifiques.
Comprendre le concept d'interface comme contrat de service. Maîtriser la déclaration et l'implémentation d'interfaces. Utiliser les interfaces génériques avec paramètres de type. Appliquer les fonctionnalités modernes (méthodes default, static, private). Résoudre les conflits de méthodes par défaut. Distinguer interfaces et classes abstraites.
Distinguer classe concrète et classe abstraite. Déclarer des classes et méthodes abstraites avec le mot-clé abstract. Comprendre les règles d'implémentation dans les sous-classes. Utiliser les classes abstraites pour modéliser des hiérarchies cohérentes.