Em Java, uma tarefa comum é organizar dados em uma coleção com base em um critério personalizado. Suponha que temos uma coleção de objetos com um campo id e queremos classificá-los por esse campo.
Para conseguir isso, podemos usar um Comparador, que nos permite especificar nossa própria lógica de ordenação. Veja como:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class CustomObject implements Comparable{ private int id; public int getId() { return id; } @Override public int compareTo(CustomObject other) { return this.id - other.id; } } public class CustomCollectionSorting { public static void main(String[] args) { // Initialize the list of CustomObject List list = new ArrayList(); list.add(new CustomObject(3)); list.add(new CustomObject(5)); list.add(new CustomObject(1)); list.add(new CustomObject(2)); // Create a comparator Comparator comparator = new Comparator () { @Override public int compare(CustomObject left, CustomObject right) { return left.getId() - right.getId(); } }; // Sort the collection Collections.sort(list, comparator); // Display the sorted list System.out.println(list); } }
Usar um Comparador oferece flexibilidade máxima na definição de sua lógica de classificação. Alternativamente, se CustomObject implementar Comparable, você pode usar o método Collections.sort(list) mais simples.
Com Java 8, classificar coleções é ainda mais fácil:
list.sort((left, right) -> left.getId() - right.getId()); list.sort(Comparator.comparing(CustomObject::getId));
Esses exemplos demonstram como classificar uma coleção Java com base em um campo específico, tornando mais fácil organizar e manipular dados de acordo com requisitos específicos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3