Cómo ordenar los objetos de la colección en Java?

Ordenación de los objetos de la Colección : Aquí, vamos a aprender cómo para ordenar los objetos de la colección en Subiendo y bajando escaleras en el lenguaje de programación Java?

Ordenación de los objetos de la Colección

  • Este concepto se relaciona con la clasificación y aquí vamos a ver cómo ordenar los objetos de la colección?
  • en Java, que tienen utilidad class colecciones sobre varios métodos para realizar diversas tareas y uno de los métodos de recolección de class se relaciona con la clasificación como sort () .
  • Podemos implementar clasificación en objeto de colección de dos maneras:

    1. Mediante el uso comparable
    2. Mediante el uso Comparador

  • Cuando llamamos Collections.sort () . Se ordena un objeto basado en la clasificación natural o class de clasificación (es decir, ascendente) que está especificado en compareTo () método.
  • Cuando llamamos Collections.sort (Comparador) . Se ordena un objeto basado en (orden ascendente o descendente es decir) personalizado de clasificación que está especificado en comparar) método del Comparador (.

Veremos las formas de clasificación de uno en uno …

1) utilizando Comparador

  • Si pasamos el objeto de comparación en la colección class constructor entonces nuestra compare () método será ejecutado.
  • cuando queremos modifique para requisitos particulares clasificar entonces deberíamos ir class Comparador.
  • Es posible llevar a cabo la clasificación personalizada mediante Comparador default. (Personalizable medios que de acuerdo a nuestra necesidad ya sea ascendente o descendente de clasificación).

Ejemplo:

import java.util.*;
class TreeSetClass {
public static void main(String[] args) {
// Here we are passing Comparator object in Collection
// class constructor for custoize sorting
TreeSet ts = new TreeSet(new CustomizeSorting());
// adding elements to TreeSet
ts.add(10);
ts.add(40);
ts.add(30);
ts.add(20);
// Customized Sorted List
System.out.println("Customize sorting :" + ts);
}
}
// Here we are implementing Comparator interface
class CustomizeSorting implements Comparator {
// Here we are overrding compare() method of Comparator
public int compare(Object obj1, Object obj2) {
Integer i1 = (Integer) obj1;
Integer i2 = (Integer) obj2;
return -i1.compareTo(i2);
}
}

salida

E:Programs>javac TreeSetClass.java
E:Programs>java TreeSetClass
Customize sorting :[40, 30, 20, 10]

2) Mediante el uso de class Comparable

  • class predefinido Clases comparables class clasificación natural es ya disponible.
  • class predefinidos clases no comparables class clasificación natural no está ya disponible.
  • for nuestras clases personalizadas para definir la clasificación naturales entonces deberíamos ir interface comparable.
  • En interface de For natural de la clasificación de objetos obligatoria debe ser homogéneo y comparable de otro modo obtendremos CCE (ClassCastException).

Ejemplo:

import java.util.*;
class TreeSetClass {
public static void main(String[] args) {
Student s1 = new Student(10);
Student s2 = new Student(30);
Student s3 = new Student(70);
Student s4 = new Student(20);
// Here we are not passing Comparator object in Collection
// class constructor for default sorting
TreeSet ts = new TreeSet();
// adding elements to TreeSet
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
// Customized Sorted List
System.out.println("Default sorting :" + ts);
}
}
// Here we are implementing Comparable interface
class Student implements Comparable {
int code;
Student(int code) {
this.code = code;
}
public String toString() {
return " Code - " + code;
}
// Here we are overrding compare() method of Comparable interface
public int compareTo(Object obj) {
int code1 = this.code;
Student intermediate = (Student) obj;
int code2 = intermediate.code;
if (code1 < code2)
return -1;
else if (code1 > code2)
return +1;
else
return 0;
}
}

salida

E:Programs>javac TreeSetClass.java
E:Programs>java TreeSetClass
Default sorting :[ Code - 10, Code - 20, Code - 30, Code - 70]


Deja un comentario

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