Header Ads Widget

Ticker

6/recent/ticker-posts

Programa Java para ordenar ArrayList de objetos personalizados por propiedad

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

Ejemplo: Ordenar ArrayList de objetos personalizados por propiedad

  1. import java.util.*;
  2. public class CustomObject {
  3. private String customProperty;
  4. public CustomObject(String property) {
  5. this.customProperty = property;
  6. }
  7. public String getCustomProperty() {
  8. return this.customProperty;
  9. }
  10. public static void main(String[] args) {
  11. ArrayList<Customobject> list = new ArrayList<>();
  12. list.add(new CustomObject("Z"));
  13. list.add(new CustomObject("A"));
  14. list.add(new CustomObject("B"));
  15. list.add(new CustomObject("X"));
  16. list.add(new CustomObject("Aa"));
  17. list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty()));
  18. for (CustomObject obj : list) {
  19. System.out.println(obj.getCustomProperty());
  20. }
  21. }
  22. }
Cuando ejecutas el programa, la salida será:
UNA
Automóvil club británico
si
X
Z
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 arreglo de objetos personalizados lista , inicializado con 5 objetos.
Para ordenar la lista con la propiedad dada, usamos el método de la listasort() . El sort()método toma la lista para ser ordenada (la lista ordenada final también es la misma) y a comparator.
En nuestro caso, el comparador es una lambda que
  • toma dos objetos de la lista o1 y o2 ,
  • compara la propiedad personalizada de los dos objetos usando el compareTo()método,
  • y finalmente devuelve un número positivo si la propiedad de o1 es mayor que la de o2, negativa si la propiedad de o1 es menor que la de o2 y cero si son iguales.
En base a esto, la lista se ordena en función de la menor propiedad a la mayor y se almacena de nuevo en la lista .

Publicar un comentario

0 Comentarios