Programa Java para ordenar ArrayList de objetos personalizados por propiedad

En este programa, aprenderá a ordenar una lista de matrices de objetos personalizados por su propiedad dada en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Objetos y clases de Java
  • Clase Java ArrayList

Ejemplo: ordenar ArrayList de objetos personalizados por propiedad

 import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )

Salida

 A Aa BXZ

En el programa anterior, hemos definido una CustomObjectclase con una Stringpropiedad, customProperty.

También hemos agregado un constructor que inicializa la propiedad y una función getter getCustomProperty()que devuelve customProperty.

En el main()método, hemos creado una lista de matriz de lista de objetos personalizados, inicializada con 5 objetos.

Para ordenar la lista con la propiedad dada, usamos el sort()método de list . El sort()método toma la lista para ser ordenada (la lista ordenada final también es la misma) y un comparator.

En nuestro caso, el comparador es una lambda que

  • toma dos objetos de la lista o1 y o2,
  • compara el compareTo()método customProperty using de los dos objetos ,
  • y finalmente devuelve un número positivo si la propiedad de o1 es mayor que la de o2, negativo si la propiedad de o1 es menor que la de o2 y cero si son iguales.

En base a esto, la lista se ordena según la propiedad de menor a mayor y se almacena en la lista.

Articulos interesantes...