Programa Java para classificar ArrayList de objetos personalizados por propriedade

Neste programa, você aprenderá a classificar uma lista de arraylist de objeto personalizado por sua propriedade fornecida em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Classe e objetos Java
  • Classe ArrayList Java

Exemplo: Classificar ArrayList de objetos personalizados por propriedade

 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()); ) ) )

Resultado

 A Aa BXZ

No programa acima, definimos uma CustomObjectclasse com uma Stringpropriedade, customProperty.

Também adicionamos um construtor que inicializa a propriedade e uma função getter getCustomProperty()que retorna customProperty.

No main()método, criamos uma lista de array de lista de objetos personalizados, inicializada com 5 objetos.

Para classificar a lista com a propriedade fornecida, usamos o sort()método de lista . O sort()método leva a lista a ser classificada (a lista classificada final também é a mesma) e a comparator.

Em nosso caso, o comparador é um lambda que

  • pega dois objetos da lista o1 e o2,
  • compara a propriedade customizada de dois objetos usando o compareTo()método,
  • e finalmente retorna um número positivo se a propriedade de o1 for maior que o2, negativo se a propriedade de o1 for menor que o2, e zero se eles forem iguais.

Com base nisso, a lista é classificada com base na menor propriedade para a maior e armazenada de volta à lista.

Artigos interessantes...