"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como classificar uma coleção Java por um campo específico?

Como classificar uma coleção Java por um campo específico?

Publicado em 2024-11-09
Navegar:311

How to Sort a Java Collection by a Specific Field?

Classificação personalizada de uma coleção Java por um campo específico

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.

Tutorial mais recente Mais>

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