La manipulation des collections est une compétence essentielle en Java, car la plupart des programmes traitent des ensembles de données : notes, listes d’utilisateurs, séries de valeurs ou résultats de calcul.
Pour organiser ces informations, Java propose des structures adaptées, notamment les tableaux et les listes dynamiques.
Comprendre leur fonctionnement permet d’écrire un code plus clair, plus robuste et plus facile à maintenir.
Les QCM de cette thématique se concentrent sur les bases indispensables : déclaration, initialisation, accès par indice et parcours des tableaux, ainsi que l’utilisation d’ArrayList pour gérer des données dont la taille évolue.
Ces notions apparaissent fréquemment dans les exercices, examens et concours, car elles évaluent la capacité à manipuler correctement la mémoire, éviter les erreurs d’index et choisir la structure la plus pertinente selon le besoin.
En maîtrisant ces fondamentaux, l’apprenant gagne en efficacité et en précision dans ses programmes Java.
La manipulation des collections est une compétence essentielle en Java, car la plupart des programmes traitent des ensembles de données : notes, listes d’utilisateurs, séries de valeurs ou résultats de calcul.
Pour organiser ces informations, Java propose des structures adaptées, notamment les tableaux et les listes dynamiques.
Comprendre leur fonctionnement permet d’écrire un code plus clair, plus robuste et plus facile à maintenir.
Les QCM de cette thématique se concentrent sur les bases indispensables : déclaration, initialisation, accès par indice et parcours des tableaux, ainsi que l’utilisation d’ArrayList pour gérer des données dont la taille évolue.
Ces notions apparaissent fréquemment dans les exercices, examens et concours, car elles évaluent la capacité à manipuler correctement la mémoire, éviter les erreurs d’index et choisir la structure la plus pertinente selon le besoin.
En maîtrisant ces fondamentaux, l’apprenant gagne en efficacité et en précision dans ses programmes Java.
QCM
1
Corrigé
Comment déclare-t-on un tableau d'entiers nommé 'notes' en Java ?
A. int notes = new array();
B. int[] notes;
C. Array notes = new int[];
D. notes int[];
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La syntaxe standard utilise le type suivi de crochets [] pour indiquer qu'il s'agit d'un tableau.
QCM
2
Corrigé
Quelle est la particularité principale de la taille d'un tableau classique en Java ?
A. Elle peut changer à tout moment
B. Elle est illimitée par défaut
C. Elle est fixe une fois le tableau créé
D. Elle dépend du nombre d'utilisateurs
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Un tableau statique a une taille immuable définie lors de son instanciation.
QCM
3
Corrigé
Quel est l'indice du premier élément dans un tableau Java ?
A. 0
B. 1
C. -1
D. Il n'y a pas d'indice
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Java utilise une indexation basée sur zéro ; le premier élément est toujours à l'index 0.
QCM
4
Corrigé
Comment obtient-on la longueur (nombre d'éléments) d'un tableau nommé 'monTab' ?
A. monTab.size()
B. monTab.count
C. monTab.length()
D. monTab.length
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Pour un tableau simple, 'length' est un attribut (propriété) et non une méthode.
QCM
5
Corrigé
Lequel de ces codes initialise un tableau de 3 cases avec les valeurs 10, 20 et 30 ?
A. int[] t = {10, 20, 30};
B. int[3] t = {10, 20, 30};
C. int[] t = new int(10, 20, 30);
D. t = [10, 20, 30];
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
L'utilisation des accolades {} permet une initialisation rapide sans spécifier 'new int[]'.
QCM
6
Corrigé
Que se passe-t-il si vous essayez d'accéder à l'index 5 d'un tableau de taille 5 ?
A. Vous accédez au dernier élément
B. Le programme affiche 'null'
C. Une erreur ArrayIndexOutOfBoundsException survient
D. Le tableau s'agrandit automatiquement
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Pour une taille 5, les indices valides vont de 0 à 4. L'index 5 est hors limites.
QCM
7
Corrigé
Quelle est la valeur par défaut des cases d'un tableau de type 'int' non initialisées ?
A. null
B. 0
C. -1
D. Une valeur aléatoire
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
En Java, les tableaux d'entiers sont automatiquement remplis de zéros à la création.
QCM
8
Corrigé
Quelle boucle est la plus concise pour lire tous les éléments d'un tableau sans utiliser d'index ?
A. La boucle while
B. La boucle do-while
C. La boucle for-each (for(int n : notes))
D. La boucle switch
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Le for-each simplifie le parcours en itérant directement sur chaque valeur.
QCM
9
Corrigé
Quelle classe Java permet de créer des listes dont la taille peut varier dynamiquement ?
A. ArrayList
B. DynamicArray
C. StaticList
D. ArrayGrow
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
ArrayList fait partie du framework Collections et gère l'ajustement automatique de sa capacité.
QCM
10
Corrigé
Comment ajoute-t-on un élément à la fin d'une ArrayList nommée 'liste' ?
A. liste.insert(valeur)
B. liste.add(valeur)
C. liste.push(valeur)
D. liste[last] = valeur
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La méthode 'add' est utilisée pour insérer un nouvel élément dans une ArrayList.
QCM
11
Corrigé
Comment récupère-t-on la valeur de la 3ème case d'un tableau classique 'tab' ?
A. tab(2)
B. tab{3}
C. tab[2]
D. tab.get(3)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les crochets [] servent à l'accès. La 3ème case correspond à l'index 2 (0, 1, 2).
QCM
12
Corrigé
Pour une ArrayList, quelle méthode retourne le nombre d'éléments ?
A. length
B. capacity()
C. count()
D. size()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Contrairement aux tableaux (.length), les ArrayList utilisent la méthode .size().
QCM
13
Corrigé
Comment vide-t-on complètement une ArrayList ?
A. liste.clear()
B. liste.delete()
C. liste.empty()
D. liste.reset()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La méthode 'clear' supprime tous les éléments présents dans la liste.
QCM
14
Corrigé
Lequel de ces types ne peut pas être stocké directement dans une ArrayList sans conversion (Wrapper) ?
A. String
B. int
C. Object
D. Scanner
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
ArrayList stocke des objets ; pour 'int', Java utilise la classe Wrapper 'Integer' (Autoboxing).
QCM
15
Corrigé
Comment modifie-t-on la valeur à l'index 1 d'une ArrayList ?
A. liste.set(1, nouvelleValeur)
B. liste[1] = nouvelleValeur
C. liste.update(1, nouvelleValeur)
D. liste.replace(1, nouvelleValeur)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La méthode 'set' permet de remplacer un élément à un indice spécifique.
QCM
16
Corrigé
Dans 'String[] mots = new String[10];', que contient mots[0] après cette ligne ?
A. Une chaîne vide ""
B. L'espace mémoire
C. null
D. Une erreur
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Un tableau d'objets (comme String) est initialisé avec la valeur 'null' par défaut.
QCM
17
Corrigé
Que retourne la méthode liste.isEmpty() ?
A. Le nombre de cases vides
B. La valeur du premier élément
C. Une erreur si la liste est pleine
D. Un booléen (true/false)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Elle retourne 'true' si la liste ne contient aucun élément, 'false' sinon.
QCM
18
Corrigé
Comment supprime-t-on l'élément à l'index 0 d'une ArrayList ?
A. liste.remove(0)
B. liste.drop(0)
C. liste.cut(0)
D. liste.clear(0)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La méthode 'remove' accepte l'index de l'élément à supprimer.
QCM
19
Corrigé
Quel est l'avantage majeur d'un tableau par rapport à une ArrayList ?
A. La flexibilité de la taille
B. Les performances et la consommation mémoire (plus léger)
C. La facilité d'utilisation des méthodes
D. Il n'y a aucun avantage
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les tableaux sont plus proches de la mémoire physique et n'ont pas la surcharge des objets ArrayList.
QCM
20
Corrigé
Si un tableau a une longueur de 10, quel est l'indice du dernier élément ?
A. 10
B. 0
C. 9
D. 11
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Comme l'index commence à 0, le dernier est toujours 'longueur - 1'.
QCM
21
Corrigé
Comment vérifie-t-on si une ArrayList contient la valeur 'Java' ?
A. liste.has('Java')
B. liste.contains('Java')
C. liste.search('Java')
D. liste.find('Java')
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La méthode 'contains' parcourt la liste et renvoie un booléen si l'élément est trouvé.
QCM
22
Corrigé
Comment créer une ArrayList de chaînes de caractères ?
A. ArrayList<String> l = new ArrayList<>();
B. ArrayList l = new String[];
C. List String l = new ArrayList();
D. ArrayList<String> l = new ArrayList[String];
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
On utilise les 'Generics' (< >) pour spécifier le type d'objets contenus dans la liste.
QCM
23
Corrigé
Peut-on stocker des types différents (ex: int et String) dans un tableau 'int[]' ?
A. Oui, sans problème
B. Seulement si le tableau est grand
C. Oui, si on utilise une conversion
D. Non, un tableau est homogène
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Un tableau ne peut contenir que des éléments du type déclaré lors de sa création.
QCM
24
Corrigé
Quelle méthode permet de récupérer un élément à un index précis dans une ArrayList ?
A. get(index)
B. fetch(index)
C. at(index)
D. read(index)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La méthode 'get' est l'équivalent des crochets [] pour les ArrayLists.
QCM
25
Corrigé
Que se passe-t-il pour les éléments restants quand on supprime une case au milieu d'une ArrayList ?
A. Ils restent à leur place et créent un trou
B. Ils sont tous supprimés
C. Ils se décalent automatiquement pour combler le vide
D. Le programme s'arrête
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
L'ArrayList gère le décalage des index pour maintenir une liste continue.
QCM
26
Corrigé
Quel package doit-on importer pour utiliser ArrayList ?
A. java.lang.*
B. java.util.ArrayList
C. java.io.ArrayList
D. java.array.List
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
ArrayList appartient au package utilitaire 'java.util'.
QCM
27
Corrigé
Comment déclare-t-on un tableau à deux dimensions (matrice) ?
A. int[][] matrice;
B. int[2] matrice;
C. int[] matrice[];
D. Les deux réponses 1 et 3 sont valides
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Java accepte les crochets avant ou après le nom, bien que 'int[][]' soit préféré.
QCM
28
Corrigé
Quelle boucle for est correcte pour parcourir un tableau 't' ?
A. for(int i=0; i<=t.length; i++)
B. for(int i=1; i<=t.length; i++)
C. for(int i=0; i<t.length; i++)
D. for(int i=0; i<t.size; i++)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
On commence à 0 et on s'arrête STRICTEMENT avant la longueur pour éviter les erreurs d'index.
QCM
29
Corrigé
Quelle est la valeur de 'tab.length' pour 'int[] tab = new int[0];' ?
A. null
B. 0
C. 1
D. Erreur de compilation
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Il est possible de créer un tableau vide de taille 0.
QCM
30
Corrigé
Peut-on utiliser les crochets [] avec une ArrayList ?
A. Seulement pour l'initialisation
B. Oui, comme pour un tableau
C. Non, il faut utiliser get() et set()
D. Seulement en lecture
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les crochets sont réservés aux tableaux statiques en Java.
Mots & Définitions
Consultez les définitions des termes importants.
Un tableau est une structure de données qui stocke une série d’éléments du même type. Chaque élément est accessible par un indice. Sa taille est définie à la création et ne change plus.
Un indice est la position d’un élément dans un tableau ou une liste. En Java, la numérotation commence à 0, ce qui signifie que le premier élément est à l’indice 0. Un bon contrôle des indices évite les erreurs d’accès.
length est une propriété qui donne le nombre d’éléments d’un tableau. Elle ne s’écrit pas avec des parenthèses car ce n’est pas une méthode. Elle sert souvent à parcourir le tableau avec une boucle.
Cette exception survient lorsqu’on tente d’accéder à un indice en dehors des limites d’un tableau. Elle indique généralement une erreur de parcours ou de calcul d’indice. C’est un signal clair qu’il faut revoir les bornes de la boucle.
La valeur par défaut est celle qu’un tableau contient avant toute initialisation explicite. Elle dépend du type : 0 pour int, false pour boolean, et null pour les références. Cela permet d’éviter des valeurs indéfinies.
La boucle for-each permet de parcourir tous les éléments d’un tableau ou d’une collection sans manipuler d’indice. Elle rend le code plus lisible et limite les erreurs. Elle est idéale lorsqu’on n’a pas besoin de la position.
ArrayList est une liste dynamique fournie par Java qui peut grandir ou rétrécir selon les besoins. Elle offre des méthodes pratiques pour ajouter, supprimer et rechercher des éléments. Elle est souvent utilisée lorsque la taille des données varie.
add() sert à ajouter un élément dans une ArrayList, généralement à la fin de la liste. Elle met à jour automatiquement la taille de la liste. C’est l’une des opérations les plus courantes sur une collection.
get(index) permet de récupérer l’élément situé à un indice précis dans une ArrayList. Elle fonctionne comme l’accès par crochets d’un tableau, mais avec une méthode. Un indice invalide provoque une exception.
set(index, valeur) remplace l’élément présent à une position donnée dans une ArrayList. Elle ne change pas la taille de la liste, seulement le contenu. Elle est utile pour mettre à jour un élément existant.
remove() supprime un élément d’une ArrayList, soit par son indice, soit par sa valeur. Après suppression, les éléments suivants se décalent pour combler le vide. Cette opération modifie la taille de la liste.
Les classes Wrapper sont des versions objets des types primitifs, comme Integer pour int. Elles sont nécessaires dans certaines collections, notamment ArrayList, qui manipulent des objets. Elles permettent aussi d’utiliser des méthodes utiles sur les valeurs.
Un tableau à deux dimensions représente une structure en lignes et colonnes, souvent appelée matrice. Il s’agit d’un tableau dont chaque case contient elle-même un tableau. Il est utilisé pour organiser des données tabulaires.
java.util est un package qui regroupe de nombreuses classes utilitaires, dont les collections comme ArrayList. L’import permet d’accéder à ces classes sans écrire leur nom complet. Il est indispensable pour utiliser certaines structures avancées.
À propos de ce QCM
Cette série de QCM aborde deux structures incontournables en Java : le tableau et l’ArrayList.
Le tableau est une structure simple et performante, idéale lorsque le nombre d’éléments est connu.
Sa taille étant fixe, il oblige à anticiper la capacité dès la création.
Cette caractéristique rend son usage très efficace en mémoire, mais moins flexible dans les cas où les données varient.
Les questions mettent l’accent sur des points clés : l’indexation qui commence à 0, l’accès aux éléments avec les crochets, et l’utilisation de la propriété length pour connaître le nombre de cases.
Ces notions sont essentielles pour parcourir un tableau correctement et éviter les erreurs classiques, notamment l’accès hors limites, qui déclenche une exception.
Les valeurs par défaut, différentes selon le type stocké, permettent aussi de comprendre ce que contient réellement un tableau juste après sa création.
La seconde partie des thèmes concerne ArrayList, une liste dynamique largement utilisée dans les applications Java.
Elle offre des méthodes simples pour ajouter, supprimer, modifier ou lire des éléments, tout en gérant automatiquement la taille.
Les QCM abordent également la différence fondamentale entre types primitifs et objets : une ArrayList stocke des objets, ce qui explique l’usage des classes Wrapper comme Integer.
Enfin, les QCM évoquent le parcours des données via la boucle for-each, plus concise et plus sûre lorsque l’indice n’est pas nécessaire, ainsi que la notion de tableaux multidimensionnels pour représenter des matrices.
L’ensemble développe une compréhension solide et pratique, utile pour l’auto-évaluation, l’entraînement ciblé et la préparation aux examens.
Conclusion
Ces QCM permettent de consolider les bases indispensables pour manipuler des ensembles de données en Java.
Ils aident à distinguer clairement quand utiliser un tableau fixe et quand privilégier une ArrayList plus flexible, tout en maîtrisant l’accès par indice, le parcours et les opérations courantes.
En s’exerçant régulièrement, l’utilisateur améliore sa précision, réduit les erreurs fréquentes et renforce sa logique de programmation.
Cette maîtrise des structures de données simples constitue un socle essentiel pour aborder des sujets plus avancés comme les collections, les algorithmes et le traitement de données en profondeur.