"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo ordenar una colección de Java por un campo específico?

¿Cómo ordenar una colección de Java por un campo específico?

Publicado el 2024-11-09
Navegar:641

How to Sort a Java Collection by a Specific Field?

Clasificación personalizada de una colección Java por un campo específico

En Java, una tarea común es organizar datos en una colección según un criterio personalizado. Supongamos que tenemos una colección de objetos con un campo de identificación y queremos ordenarlos por ese campo.

Para lograr esto, podemos usar un Comparador, que nos permite especificar nuestra propia lógica para ordenar. Aquí se explica cómo:

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

El uso de un comparador le brinda la máxima flexibilidad para definir su lógica de clasificación. Alternativamente, si CustomObject implementa Comparable, puede usar el método más simple Collections.sort(list).

Con Java 8, ordenar colecciones es aún más fácil:

list.sort((left, right) -> left.getId() - right.getId());
list.sort(Comparator.comparing(CustomObject::getId));

Estos ejemplos demuestran cómo ordenar una colección Java según un campo específico, lo que facilita la organización y manipulación de datos según requisitos específicos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3