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.
Écrivez un programme Java pour trier un ArrayList donné.
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]
Écrivez un programme Java pour inverser les éléments d’un ArrayList.
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]
Corrigez la méthode suivante displayEvenIndex() afin qu’elle affiche les entiers aux index pairs [0], [2], [4], [6] et[8] de la liste passée en argument.
Exemple:
Sortie prévue:
{1, 3, 5, 7, 9}
Code à corriger:
import java.util.*;
public class Main
{
public static void displayEvenIndex(ArrayList list)
{
for (int i)
{
if (i % 2 == 1)
{
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);
}
}
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.
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);
}
}
É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++]
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}
Code à corriger:
import java.util.*;
public class Main
{
public static void displayEvenElements(ArrayList liste)
{
for (int i = 0; i < liste.length; i++)
{
if (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);
}
}
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.
Sortie prévue:
Liste d'origine : [1, 2, 3, 4, 5, 6, 7, 8, 9]
La partie extrait: [5, 6, 7]
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.
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);
// Complétez le code ici
nbrs.add(5);
nbrs.add(6);
nbrs.add(7);
nbrs.add(8);
nbrs.add(9);
System.out.println(nbrs);
}
}
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);
// Augmenter la capacité à 5
nbrs.ensureCapacity(5);
nbrs.add(5);
nbrs.add(6);
nbrs.add(7);
nbrs.add(8);
nbrs.add(9);
System.out.println(nbrs);
}
}
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.
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 = 0; i < nbrs.length; i ++)
{
liste.add(nbrs[i]);
}
System.out.println(liste);
}
}
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);
}
}