Comparer deux ArrayList en java

Dans ce tutoriel, on va voir comment comparer les éléments de deux ArrayList en java. On doit en utilisant la méthode contains() et equals() pour comparer deux éléments de différents ArrayList.

Les deux méthode renvoie true si la liste contient l'objet o sinon false.

Comparer deux ArrayList en utilisant la méthode contains()

Dans cet exemple, on a deux ArrayList L1 et L2 de type String. On doit comparer ces deux ArrayList en utilisant contains() et enregistrer les résultats dans un autre ArrayList L3.

import java.util.ArrayList;

public class ArrayListComparaison{

public static void main(String[] args) {

// Créer un ArrayList<String> L1
ArrayList<String> L1 = new ArrayList<String>();

//ajouter des éléments à L1
L1.add("2");
L1.add("8");
L1.add("1");
L1.add("9");
L1.add("7");

System.out.println("Eléménts de L1:");
for(String o:L1)
System.out.println(o);

// Créer un ArrayList<String> L2
ArrayList<String> L2 = new ArrayList<String>();

//ajouter des éléments à L2
L2.add("2");
L2.add("4");
L2.add("1");
L2.add("9");
L2.add("5");

System.out.println("Eléménts de L2:");
for(String o:L1)
System.out.println(o);

//Comparer et stocker les résultats dans L3
ArrayList<String> L3 = new ArrayList<String>();
for(String o:L1){
if(L2.contains(o))
L3.add("1");
else
L3.add("0");
}

System.out.println("L3 = "+L3);
}
}
Exécution:

Elémént de L1:
2
8
1
9
7
Elémént de L2:
2
4
1
9
5
L3 = [1, 0, 1, 1, 0]
Si l'objet dans L1 se trouve dans la même position dans L2 alors, L3 ajoute "1", dans le cas inverse L3 ajoute "0".

Comparer deux ArrayList en utilisant la méthode equals()

La méthode equals() de la classe ArrayList teste l'égalité de deux objets.


import java.util.ArrayList;

public class ArrayListComparaison{

public static void main(String[] args) {

// Créer un ArrayList<String> L1
ArrayList<String> L1 = new ArrayList<String>();

//ajouter des éléments à L1
L1.add("a");
L1.add("c");
L1.add("b");
L1.add("d");
L1.add("e");

System.out.println("Elémént de L1:");
for(String o:L1)
System.out.println(o);

// Créer un ArrayList<String> L2
ArrayList<String> L2 = new ArrayList<String>();

//ajouter des éléments à L2
L2.add("a");
L2.add("d");
L2.add("b");
L2.add("f");
L2.add("e");

System.out.println("Elémént de L2:");
for(String o:L1)
System.out.println(o);

//Comparer et stocker les résultats dans L3
ArrayList<String> L3 = new ArrayList<String>();
for(int i=0;i< L1.size();i++){
if(L1.get(i).equals(L2.get(i)))
L3.add("1");
else
L3.add("0");
}

System.out.println("L3 = "+L3);
}
}
Exécution:

Elémént de L1:
a
c
b
d
e
Elémént de L2:
a
d
b
f
e
L3 = [1, 0, 1, 0, 1]
On peut aussi utiliser l'opérateur == au lieu de la méthode equals():

if(L1.get(i)==L2.get(i))