Exercice Java Corrigé sur les Collections – Arraylist – Partie 2

Avec des exercices corrigés en Java, vous pratiquerez divers concepts du langage de programmation Java. Vous commencerez par des exercices Java de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.

Tutoriel sur ArrayList | java
 

Exercice 1:

Écrivez un programme Java pour trier un ArrayList donné.

Exemple:
[PHP, Java, C++, Ada]

Sortie prévue:
Liste avant le tri: [PHP, Java, C++, Ada]

Liste après le tri: [Ada, C++, Java, PHP]

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {
	  
    List<String> languages = new ArrayList<String>();

    languages.add("PHP");
    languages.add("Java");
    languages.add("C++");
    languages.add("Ada");
  
    System.out.println("Liste avant le tri: "+languages);
    Collections.sort(languages);
    System.out.println("Liste après le tri: "+languages); 
 }
}

 
Sortie:

Liste avant le tri: [PHP, Java, C++, Ada]
Liste après le tri: [Ada, C++, Java, PHP]
 

Exercice 2:

Écrivez un programme Java pour inverser les éléments d’un ArrayList.

Exemple:
[PHP, Java, C++, Ada]

Sortie prévue:
Liste avant l’inversion: [PHP, Java, C++, Python]

Liste après l’inversion: [Python, C++, Java, PHP]

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {
	  
    List<String> languages = new ArrayList<String>();

    languages.add("PHP");
    languages.add("Java");
    languages.add("C++");
    languages.add("Ada");
  
    System.out.println("Liste avant l'inversion: "+languages);
    Collections.reverse(languages);
    System.out.println("Liste après l'inversion: "+languages); 
 }
}

 
Sortie:

Liste avant l'inversion: [PHP, Java, C++, Python]
Liste après l'inversion: [Python, C++, Java, PHP]
 

Exercice 3:

Corrigez la méthode suivante displayEvenIndex afin qu’elle affiche les entiers aux index pairs de la liste passée en argument.

Exemple:

Sortie prévue:
{1, 3, 5, 7, 9}

Solution:

À la ligne 7, la boucle for doit être écrite comme suit for(int i = 0; i < list.size(); i++) afin que la méthode traverse tous les éléments de la liste.

Dans la ligne 9, il faut vérifier quand l’indice, i est pair – en d’autres termes, vérifier s’il est divisible par 2 sans reste: i % 2 == 0.

import java.util.*;

public class Main
{
    public static void displayEvenIndex(ArrayList list)
    {
        for (int i = 0; i < list.size(); i++)
        {
            if (i % 2 == 0)
            {
                System.out.print(list.get(i) + " ");
            }
        }
    }

    public static void main(String[] args)
    {
        ArrayList<Integer> liste = new ArrayList<Integer>();
		
        int[] nbrs = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		
        for (int i = 0; i < nbrs.length; i ++)
        {
            liste.add(nbrs[i]);
        }
        displayEvenIndex(liste);
    }
}

 
Sortie:

1 3 5 7 9
 

Exercice 4:

Écrivez un programme Java pour copier un ArrayList dans un autre.

Exemple:
Languages: [PHP, Java, C++, Python] Frameworks: [Spring, Hibernate, Laravel, Symfony]

Sortie prévue:
Languages: [PHP, Java, C++, Python]

Frameworks: [Spring, Hibernate, Laravel, Symfony]

copie…

Languages: [Spring, Hibernate, Laravel, Symfony]

Frameworks: [Spring, Hibernate, Laravel, Symfony]

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {
	  
    List<String> languages = new ArrayList<String>();
    languages.add("PHP");
    languages.add("Java");
    languages.add("C++");
    languages.add("Python");
    System.out.println("Languages: " + languages);
  
    List<String> frameworks = new ArrayList<String>();
    frameworks.add("Spring");
    frameworks.add("Hibernate");
    frameworks.add("Laravel");
    frameworks.add("Symfony");
    System.out.println("Frameworks: " + frameworks);
  
    // Copie la liste des languages dans frameworks
    Collections.copy(languages, frameworks);
    System.out.println("copie...");
    System.out.println("Languages: " + languages);
    System.out.println("Frameworks: " + frameworks);
 }
}

 
Sortie:

Languages: [PHP, Java, C++, Python]
Frameworks: [Spring, Hibernate, Laravel, Symfony]
copie...
Languages: [Spring, Hibernate, Laravel, Symfony]
Frameworks: [Spring, Hibernate, Laravel, Symfony]
 

Exercice 5:

Écrivez un programme Java pour mélanger les éléments d’un ArrayList.

Sortie prévue:
Liste avant de mélanger: [PHP, Java, C++, Python]

Liste après mélange: [Python, Java, PHP, C++]

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {
	  
    List<String> languages = new ArrayList<String>();

    languages.add("PHP");
    languages.add("Java");
    languages.add("C++");
    languages.add("Python");
  
    System.out.println("Liste avant de mélanger: "+languages);
    Collections.shuffle(languages);
    System.out.println("Liste après mélange: "+languages); 
 }
}

 
Sortie:

Liste avant de mélanger: [PHP, Java, C++, Python]
Liste après mélange: [Python, Java, PHP, C++]
 

Exercice 6:

Corrigez la méthode suivante displayEvenElements afin qu’elle affiche tous les nombres entiers pairs qui figurent dans l’ArrayList transmise en argument.

Exemple:

Sortie prévue:
{2, 4, 6, 8}

Solution:

À la ligne 7, les ArrayLists n’ont pas la propriété length; à la place, appelez la méthode size() pour connaître la longueur d’un ArrayList. À la ligne 9, il doit y avoir un transtypage (int) sur la méthode get() car les valeurs contiennent des objets Integer.

import java.util.*;

public class Main
{
    public static void displayEvenElements(ArrayList liste)
    {
        for (int i = 0; i < liste.size(); i++)
        {
            if ((int)liste.get(i) % 2 == 0)
            {
                System.out.print(liste.get(i) + " ");
            }
        }
    }

    public static void main(String[] args)
    {
        ArrayList<Integer> liste = new ArrayList<Integer>();
		
        int[] nbrs = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		
        for (int i = 0; i < nbrs.length; i ++)
        {
            liste.add(nbrs[i]);
        }
        displayEvenElements(liste);
    }
}

 
Sortie:

2 4 6 8
 

Exercice 7:

Écrivez un programme Java pour extraire une partie d’un ArrayList.

Exemple:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Sortie prévue:
[4, 5, 6]

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {

    List<Integer> nbrs = new ArrayList<Integer>();

    nbrs.add(1);
    nbrs.add(2);
    nbrs.add(3);
    nbrs.add(4);
    nbrs.add(5);
    nbrs.add(6);
    nbrs.add(7);
    nbrs.add(8);
    nbrs.add(9);

    System.out.println("liste d'origine : " + nbrs);
    List<Integer> sub_nbrs = nbrs.subList(4, 7);
    System.out.println("La partie extrait: " + sub_nbrs);
 }
}

 
Sortie:

liste d'origine : [1, 2, 3, 4, 5, 6, 7, 8, 9]
La partie extrait: [5, 6, 7]
 

Exercice 8:

Complétez le programme Java suivant pour augmenter la taille d’un ArrayList.

Solution:

import java.util.*;

public class Main {
  public static void main(String[] args) {
	  
    ArrayList<Integer> nbrs = new ArrayList<Integer>(4);

    nbrs.add(1);
    nbrs.add(2);
    nbrs.add(3);
    nbrs.add(4);
    nbrs.ensureCapacity(5);
    nbrs.add(5);
    nbrs.add(6);
    nbrs.add(7);
    nbrs.add(8);
    nbrs.add(9);
  
    System.out.println(nbrs);
 }
}

 
Sortie:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
 

Exercice 9:

Réécrivez le code suivant afin qu’il remplisse les valeurs de l’ArrayList avec les éléments du tableau à l’aide d’une boucle for-each au lieu d’une boucle for.

Solution:

Dans une boucle for-each, vous spécifiez le type des valeurs dans le tableau, un nom pour la valeur actuelle, puis :(deux points) puis le nom du tableau.

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        ArrayList<Integer> liste = new ArrayList<Integer>();
		
        int[] nbrs = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		
        for (int i: nbrs)
        {
            liste.add(i);
        }
		
        System.out.println(liste);
    }
}

 
Sortie:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
QCM-JavaTestez vos connaissances – QCM Java corrigé – Partie 1QCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *