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-Java

Laisser un commentaire

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