English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderá a ordenar un ArrayList de objetos personalizados según un atributo dado en Java.
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<Customobject> 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()); } } }
Al ejecutar este programa, la salida es:
A Aa B X Z
En el programa anterior, definimos una clase CustomObject con el atributo String customProperty
También hemos agregado un constructor que inicializa las propiedades y una función getter getCustomProperty() que devuelve customProperty
En el método main(), creamos una lista de array de objetos personalizados list y usamos5se inicializaron objetos.
Para ordenar la lista por el atributo dado, usamos el método sort() de la lista. El método sort() acepta la lista a ordenar (también es la lista ordenada final) y un comparador
En nuestro ejemplo, el comparador es una expresión lambda
de la lista o1y o2se obtienen dos objetos
se compara el customProperty de dos objetos usando el método compareTo()
si o1del atributo es mayor que o2del atributo, se devuelve el número positivo; si o1del atributo es menor que o2del atributo, se devuelve el número negativo; si son iguales, se devuelve cero.
En este caso, la lista (list) se ordena por el atributo más pequeño al más grande y se almacena nuevamente en la lista