Obtener el elemento de valor más alto y más bajo de un conjunto mediante el uso de la lógica de clasificación en TreeSet en Java

TreeSet en Java implementa Set Interface y usa un árbol rojo-negro para almacenar valores. Usamos TreeSet para ordenar, ya que los elementos en TreeSet se almacenan en orden ascendente de manera predeterminada. Una vez que se crea el TreeSet, podemos obtener el valor de elemento más alto del último elemento del TreeSet y el valor del primer elemento del primer elemento del TreeSet. Primero tenemos que pasar los objetos Comparator junto con la declaración TreeSet. Ahora, simplemente podemos hacer esto creando un TreeSet y agregando elementos y luego ordenando los elementos por un determinado atributo, finalmente obteniendo el elemento más alto por último() y el más bajo por las funciones primero() en TreeSet. Tendremos que anular la comparación .método para implementar la Clasificación. La declaración TreeSet seguiría la sintaxis que se indica a continuación:

Sintaxis

TreeSet<Comparator> name = new TreeSet<Comparator>(new ComparatorClass());

Parámetros

  • name: Nombre del TreeSet Creado
  • Comparador: objeto comparador
  • ComparatorClass(): clase utilizada para implementar la función de clasificación (método de comparación)

Devuelve: TreeSet donde podemos agregar valores

Por ejemplo, queremos crear un TreeSet que tenga los nombres y la Edad de un grupo, y queremos encontrar la Persona con la Edad y el Valor más altos y con la Edad y el Valor más bajos.

Ejemplo 1:

Input :
Name - "Ramesh" Age - 20
Name - "Suresh" Age - 48
Name - "Ankit" Age - 14
Name - "Madhav" Age - 78

Output :
Highest Age Person: Name : Madhav-- Age : 78
Lowest Age Person: Name : Ankit-- Age : 14

Ejemplo 2:

Input :
Name - "Ramesh" Age - 20
Name - "Suresh" Age - 20
Name - "Ankit" Age - 78
Name - "Madhav" Age - 78

Output :
Highest Age Person: Name : Ankit-- Age : 78
Lowest Age Person: Name : Suresh-- Age : 14

Explicación 

Por ejemplo, todas las edades son distintas, por lo que la más alta y la más baja se encuentran en función del valor de la edad.

Por ejemplo, los valores de edad más altos son los mismos, por lo que el nombre de la persona al final() de treeset recibe el valor más alto, es decir, ‘A’ <‘M’, por lo que Ankit tiene la edad más alta, mientras que si los valores de edad más bajos son el mismo nombre al principio ( ) del conjunto de árboles recibe el valor más bajo, es decir, ‘S’ > ‘R’, por lo que Suresh tiene la edad más baja.

Ejemplo:

Java

// Getting Highest and Lowest Value 
// Element From a Set by Using Sorting 
// Logic on TreeSet in Java
  
import java.util.*;
import java.io.*;
import java.util.Comparator;
import java.util.TreeSet;
  
// Implement sorting class using comparator to sort
class sorting implements Comparator<ages> {
    
    // Override the Compare Method
    @Override
    public int compare(ages age1, ages age2) {
        if (age1.value() > age2.value()) {
            return 1;
        } else {
            return -1;
        }
    }
}
  
// Implement ages for getting name and age
class ages {
    private String name;
    private int age;
  
    public ages(String name, int a) {
        this.name = name;
        this.age = a;
    }
  
    public String Name() {
        return name;
    }
  
    public void NewName(String name) {
        this.name = name;
    }
  
    public int value() {
        return age;
    }
  
    public void NewAge(int age) {
        this.age = age;
    }
  
    // Convert to string output
    public String toString() {
        return "Name: " + this.name + "-- age: " + this.age;
    }
}
  
public class GFG {
    public static void main(String[] args) {
        // Create a TreeSet with Comporator Object
        TreeSet<ages> agetree = new TreeSet<ages>(new sorting());
        
        // Add elements in TreeSet
        agetree.add(new ages("Ramesh", 20));
        agetree.add(new ages("Suresh", 20));
        agetree.add(new ages("Ankit", 78));
        agetree.add(new ages("Madhav", 78));
        
        // Output Highest Value Element
        System.out.println("Highest Age Person: " + agetree.last());
        
        // Output Lowest Value Element
        System.out.println("Lowest Age Person: " + agetree.first());
    }
}
Producción

Highest Age Person: Name: Ankit-- age: 78
Lowest Age Person: Name: Suresh-- age: 20

Publicación traducida automáticamente

Artículo escrito por prakhardungarwal2018 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *