¿Qué es la interfaz de comparación en Java con ejemplos?

Que Es La Interfaz De Comparacion En Java Con Ejemplos



En Java, la interfaz Comparator se utiliza para definir una función de comparación que se puede usar para clasificar una colección de objetos. Permite clasificar objetos según criterios personalizados en lugar de la comparación predeterminada basada en el orden natural. Dispone de diversas aplicaciones para personalizar funciones según las necesidades. Este artículo explicará la interfaz Comparator junto con numerosos ejemplos en Java.

¿Qué es la interfaz de comparación en Java con ejemplos?

La interfaz Comparator contiene métodos compare() y equals(). El primer método se utiliza para calcular dos objetos devolviendo un valor entero. El otro método se utiliza para calcular la igualdad de dos objetos comparadores.

Aquí hay diferentes ejemplos de cómo usar la interfaz Comparator en Java:







Ejemplo 1: ordenar una lista según la longitud

En este ejemplo, se considera una lista de cadenas y se ordenan según su longitud en lugar del orden alfabético:



importar java.util.ArrayList ;

importar java.util.Collections ;

importar java.util.Comparator ;

importar java.util.Lista ;

público clase Principal {

  público estático vacío principal ( Cadena [ ] argumentos ) {

Lista < Cadena > lista = nuevo Lista de arreglo <> ( ) ;

lista. agregar ( 'John' ) ;

lista. agregar ( 'Beto' ) ;

lista. agregar ( 'Alicia' ) ;

      Colecciones . clasificar ( lista ) ;

      Sistema . afuera . imprimir ( lista ) ;

      Colecciones . clasificar ( lista, nuevo Comparador de longitud de cadena ( ) ) ;

      Sistema . afuera . imprimir ( lista ) ;

  }

} // Se define una clase

clase Comparador de longitud de cadena implementos comparador < Cadena > {

  público En t comparar ( Cadena s1, Cadena s2 ) {

      devolver Entero . comparar ( s1. longitud ( ) , s2. longitud ( ) ) ;

  }

}

La descripción del código anterior se da a continuación:



  • Primero, cree una clase Comparator personalizada llamada StringLengthComparator que implemente la interfaz Comparator.
  • Anula el método compare() para comparar la longitud de dos cadenas.
  • Al final, pase una instancia al método .sort() para ordenar la lista usando nuestro comparador personalizado.

Producción





El primer resultado es el resultado de ordenar la lista usando el orden natural, mientras que el segundo resultado es el resultado de ordenar la lista usando nuestro comparador personalizado basado en la longitud de cada cadena.



Ejemplo 2: Ordenar objetos según un campo específico

Otro ejemplo se lleva a cabo para ordenar objetos en función de un campo específico. La interfaz Comparator se utiliza para lograr esto:

importar java.util.ArrayList ;

importar java.util.Collections ;

importar java.util.Comparator ;

importar java.util.Lista ;

público clase Principal {

  público estático vacío principal ( Cadena [ ] argumentos ) {

Lista < Persona > personas = nuevo Lista de arreglo <> ( ) ; // Asignar nombre, edad y salarios

personas agregar ( nuevo Persona ( 'Alicia' , 25 , 50000 ) ) ;

personas agregar ( nuevo Persona ( 'Beto' , 30 , 75000 ) ) ;

personas agregar ( nuevo Persona ( 'Charlie' , 20 , 40000 ) ) ;

comparador < Persona > comparador de salarios = nuevo comparador < Persona > ( ) {

        // Ordenar personas según salario

        público En t comparar ( Persona p1, Persona p2 ) {

        devolver Entero . comparar ( p2. obtenerSalario ( ) , p1. obtenerSalario ( ) ) ;

        }

    } ;

    Colecciones . clasificar ( personas, salario Comparador ) ; devolver ordenar valores

      // Imprime una lista ordenada de personas

      para ( persona persona : personas ) {

      Sistema . afuera . imprimir ( persona ) ;
 
    }

  }

}

clase Persona { // Definir nombre, edad y salario

    privado Cadena nombre ; // alcance dentro de una clase
    privado En t edad ;
    privado En t salario ;
   
    público Persona ( Cadena nombre, En t edad, En t salario ) {
        este . nombre = nombre ;
        este . edad = edad ;
        este . salario = salario ;
    }
    público Cadena obtenerNombre ( ) {
        devolver nombre ;
    }
    público En t obtenerEdad ( ) {
        devolver edad ;
    }
    público En t obtenerSalario ( ) {
        devolver salario ;
    }
    público Cadena Encadenar ( ) {
        devolver nombre + ' (edad ' + edad + ', salario $' + salario + ')' ;
    }
}

La descripción del código se da a continuación:

  • Una clase llamada “ Persona ” con tres campos: “ nombre ”, “ edad ', y ' salario ' se considera.
  • Después de eso, ordene una colección de objetos Person según su salario en orden descendente.

Producción

El resultado muestra que los salarios se han clasificado según el orden descendente.

Conclusión

En Java, la interfaz Comparator es una poderosa herramienta que permite a los usuarios ordenar objetos según criterios personalizados. Anula el método compare(), los usuarios pueden definir su propia función de comparación y usarla para ordenar colecciones de objetos de varias maneras. Este artículo ha explicado la interfaz de Comparator junto con ejemplos prácticos en Java.