Comparar ArrayLists en Java

Sarwan Soomro 12 octubre 2023
  1. Comparar ArrayLists en Java
  2. Comparar dos ArrayLists en Java
  3. Ordenar ArrayLists antes de la comparación en Java
Comparar ArrayLists en Java

Java proporciona métodos sencillos para comparar clases de cadenas y ArrayLists y otras cosas. Por lo tanto, lo mantendremos simple y limpio para usted.

En este tutorial, primero, compararemos dos ArrayLists usando un método de comparación en Java. También aplicamos el mismo método a las cadenas de Java antes de aplicarlo a las ArrayLists.

Finalmente, demostramos cómo puede ordenar una ArrayLists desordenada antes de la comparación.

Comparar ArrayLists en Java

Java tiene un método incorporado para comparar objetos, tamaño y elementos dentro de las ArrayLists. Aunque hay muchos métodos que podemos usar para obtener el mismo resultado, usaremos el siguiente método ya que es el más directo.

la función .equals() en Java

Esta función en Java compara el objeto especificado por el usuario con esta lista.

Estructura de sintaxis:

ArrayList1.equals(ArrayList2)

Parámetro: solo un objeto; en este caso, ArrayList2 es un objeto que se pasa como parámetro único.

Este método devolverá true o false de Boolean en función de lo siguiente.

  1. Si el objeto especificado por el usuario también es una lista.
  2. Ambas listas tienen el mismo tamaño.
  3. Todos los pares de elementos relacionados en las dos listas también son equivalentes.

Para comprender este método de manera más objetiva, consulte el siguiente programa que hemos creado usando cadenas.

Más tarde, usaremos la misma lógica en las ArrayLists.

Utilice el método .equals() para comparar cadenas 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));
  }
}

Producción :

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

Comparar dos ArrayLists en Java

Usamos .equals() para comparar valores de cadena en el ejemplo anterior para mostrar que el método funcionará de la misma manera cuando se usa en ArrayList en Java. ¿Cómo es eso?

Compruebe la siguiente sintaxis de Java:

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

Las ArrayLists usan aquí la clase String de Java. Del mismo modo, comparamos cadenas en el ejemplo anterior.

Y ahora, usaremos el mismo método en ArrayList<String>.

¿Lo tienes todo claro? Vamos a hacerlo.

Código 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!");
    }
  }
}

Producción :

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!

Ordenar ArrayLists antes de la comparación en Java

¿Qué sucede si sus ArrayLists tienen el mismo tamaño y elementos, pero los valores no están ordenados?

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"));
Nota
La solución simple es usar import java.util.Collections;. Hará el resto por ti. Aquí es cómo.
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)); //
  }
}

Producción :

true

Si no usamos Collections.sort(myList2);, la salida será false.

Puede aplicar el mismo método sort() a valores desordenados pero tener los mismos objetos y elementos. Entonces, puedes usar .equals().

Demo en vivo:

ordenar ArrayLists antes de compararlas

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

Artículo relacionado - Java Method

Artículo relacionado - Java ArrayList