Comparer les ArrayLists en Java

Sarwan Soomro 15 février 2024
  1. Comparer les ArrayLists en Java
  2. Comparer deux ArrayLists en Java
  3. Trier les ArrayLists avant la comparaison en Java
Comparer les ArrayLists en Java

Java fournit des méthodes simples pour comparer les classes de chaînes et les ArrayLists, etc. Donc, nous allons le garder simple et propre pour vous.

Dans ce didacticiel, nous allons d’abord comparer deux ArrayLists à l’aide d’une méthode de comparaison en Java. Nous appliquons également la même méthode aux chaînes Java avant de l’appliquer aux ArrayLists.

Enfin, nous montrons comment vous pouvez trier une liste de tableaux non ordonnés avant la comparaison.

Comparer les ArrayLists en Java

Java a une méthode intégrée pour comparer les objets, la taille et les éléments dans les ArrayLists. Bien qu’il existe de nombreuses méthodes que nous pouvons utiliser pour obtenir le même résultat, nous utiliserons la méthode suivante car c’est la plus simple.

la fonction .equals() en Java

Cette fonction en Java compare l’objet spécifié par l’utilisateur à cette liste.

Structure syntaxique :

ArrayList1.equals(ArrayList2)

Paramètre : un objet uniquement ; dans ce cas, ArrayList2 est un objet passé en paramètre unique.

Cette méthode renverra le true ou le false booléen en fonction des éléments suivants.

  1. Si l’objet spécifié par l’utilisateur est également une liste.
  2. Les deux listes ont la même taille.
  3. Toutes les paires d’éléments apparentés dans les deux listes sont également équivalentes.

Pour comprendre cette méthode plus objectivement, consultez le programme suivant que nous avons créé à l’aide de chaînes.

Plus tard, nous utiliserons la même logique sur les ArrayLists.

Utilisez la méthode .equals() pour comparer des chaînes en Java

package comparearrays.com.util;

public class FirstStringDemoEqualsMethd {
  public static void main(String[] args) {
    String one = "USA";
    String two = "USA";
    String three = "Germany";

    // comparing the values of string one and string two
    if (one.equals(two) == true) {
      System.out.println("String one: " + one);
      System.out.println("String one: " + two);
      System.out.println("Both are equal");
    } else {
      System.out.println("Both are not equal");
    }

    // compares string one's values against string three's (since both are the same, true)
    // false (one and three are not the same, false)
    System.out.println("String one and String three are not the same: so, " + one.equals(three));
  }
}

Production:

String one: USA
String one: USA
Both are equal
String one and String three are not the same: so, false

Comparer deux ArrayLists en Java

Nous avons utilisé .equals() pour comparer les valeurs de chaîne dans l’exemple ci-dessus afin de montrer que la méthode fonctionnera de la même manière lors de son utilisation sur ArrayList en Java. Comment?

Vérifiez la syntaxe Java suivante :

ArrayList<String> myList1 = new ArrayList<String>();
ArrayList<String> myList2 = new ArrayList<String>();

Les ArrayLists utilisent ici la classe String de Java. De même, nous avons comparé les chaînes dans l’exemple précédent.

Et maintenant, nous allons utiliser la même méthode sur ArrayList<String>.

Tout est clair ? Faisons le.

Code Java :

package comparearrays.com.util;

import java.util.ArrayList;

// main class
public class ArrayListComparisionExample1 {
  // main function
  public static void main(String[] args) {
    // list 1
    ArrayList<String> myList1 = new ArrayList<String>();
    // values
    myList1.add("Apple");
    myList1.add("Orange");
    myList1.add("Grapes");
    myList1.add("Water Melon");
    // list 2
    ArrayList<String> myList2 = new ArrayList<String>();
    // values
    myList2.add("Apple");
    myList2.add("Orange");
    myList2.add("Grapes");
    myList2.add("Water Melon");
    // print list 1
    System.out.println("Values from list 1: " + myList1);
    // print list 2
    System.out.println("Values from list 2: " + myList2);

    // apply .equals() method for comparision
    if (myList1.equals(myList2) != false) {
      System.out.println("Both Array Lists are equal!");
    } else {
      System.out.println("Both Array Lists are not equal!");
    }

    // add new values to list to determine if condition works
    myList1.add("Pine Apple");
    // print updated list
    System.out.println("Updated valued from list 1: " + myList1);

    // compare again

    if (myList1.equals(myList2) != false) {
      System.out.println("Both Array Lists are equal!");
    } else {
      System.out.println("Both Array Lists are not equal!");
    }
  }
}

Production:

Values from list 1: [Apple, Orange, Grapes, Water Melon]
Values from list 2: [Apple, Orange, Grapes, Water Melon]
Both Array Lists are equal!
Updated valued from list 1: [Apple, Orange, Grapes, Water Melon, Pine Apple]
Both Array Lists are not equal!

Trier les ArrayLists avant la comparaison en Java

Que se passe-t-il si vos ArrayLists ont la même taille et les mêmes éléments, mais que les valeurs ne sont pas triées ?

ArrayList<String> myList1 = new ArrayList<String>(Arrays.asList("1", "2", "3", "4", "5"));
ArrayList<String> myList2 = new ArrayList<String>(Arrays.asList("2", "1", "3", "4", "5"));
Noter
La solution simple est d’utiliser import java.util.Collections;. Il fera le reste pour vous. Voici comment.
package comparearrays.com.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class ArrayListsComparisionAndSortingExample2 {
  public static void main(String[] args) {
    ArrayList<String> myList1 = new ArrayList<String>(Arrays.asList("1", "2", "3", "4", "5"));
    // unsorted list
    ArrayList<String> myList2 = new ArrayList<String>(Arrays.asList("2", "1", "3", "4", "5"));
    // sorting lists
    Collections.sort(myList1);
    Collections.sort(myList2);
    System.out.println(myList1.equals(myList2)); //
  }
}

Production:

true

Si nous n’utilisons pas Collections.sort(myList2);, la sortie sera false.

Vous pouvez appliquer la même méthode sort() à des valeurs non ordonnées mais avoir les mêmes objets et éléments. Ensuite, vous pouvez utiliser .equals().

Démo en direct :

trier les ArrayLists avant de les comparer

Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

Article connexe - Java Method

Article connexe - Java ArrayList