QCMUP.COM

Liste QCM JAVA Corrigé – Partie 5

Entraînez-vous avec des questions corrigées, progressez étape par étape, puis consolidez vos notions grâce aux définitions et explications.

30 questions Réponses expliquées Réviser → Pratiquer
Liste QCM JAVA Corrigé – Partie 5 – 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.

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.