Ordenar la lista de matrices de objetos en Java

Ordenar la lista de matrices de objetos en Java

En este tutorial, aprenderemos a ordenar una lista de objetos Array en Java.

Índice
  1. Construye una lista de objetos.
  2. Ordenar la lista de objetos

Construye una lista de objetos.

Comprendamos la clasificación de una lista de objetos de matriz con un ejemplo. Vamos a crear una clase Book:-

@Data
public class Book {
  private final String name;
  private final String author;
  private final double rating;
}

Vamos a crear algunos Book objetos y crear una biblioteca con una lista de matriz de objetos de libro: -

Book book1 = new Book("book1", "author1", 3.0);
Book book2 = new Book("book2", "author2", 5);
Book book3 = new Book("book3", "author1", 4.0);
Book book4 = new Book("book4", "author2", 2.5);
Book book5 = new Book("book5", "author1", 4.0);

List<Book> library = Arrays.asList(book1, book2, book3, book4, book5);

Ordenar la lista de objetos

Veamos varios ejemplos de clasificación de la biblioteca de libros:

Orden ascendente
  1. Ordenar una lista de objetos de libros por autor en orden ascendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor));
    
    // [Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book2, author=author2, rating=5.0), 
    //  Book(name=book4, author=author2, rating=2.0)]
    
  2. Ordenar una lista de objetos de libros por clasificación en orden ascendente
    Collections.sort(library, Comparator.comparingDouble(Book::getRating));
    
    // [Book(name=book4, author=author2, rating=2.0), 
    //  Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book2, author=author2, rating=5.0)]
    

 

Ordenar en orden descendente
  1. Ordenar una lista de objetos de libros por autor en orden descendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor).reversed());
    
    // [Book(name=book4, author=author2, rating=2.0), 
    //  Book(name=book2, author=author2, rating=5.0), 
    //  Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0)]
    
  2. Ordenar una lista de objetos de libros por calificación en orden descendente
    Collections.sort(library, Comparator.comparingDouble(Book::getRating).reversed());
    
    // [Book(name=book2, author=author2, rating=5.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book4, author=author2, rating=2.0)]
    

 

Ordenar por varios campos en orden ascendente
  1. Ordene una lista de objetos de libros por autor, luego califique en orden ascendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor)
            .thenComparing(Book::getRating));
    
    // [Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book4, author=author2, rating=2.0), 
    //  Book(name=book2, author=author2, rating=5.0)]
    
  2. Ordene una lista de objetos de libros por autor, luego por calificación y luego por nombre en orden ascendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor)
            .thenComparing(Book::getRating)
            .thenComparing(Book::getName));
    
    // [Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book4, author=author2, rating=2.0), 
    //  Book(name=book2, author=author2, rating=5.0)]
    

 

Ordenar por varios campos en orden ascendente y luego descendente
  1. Ordene una lista de objetos de libros por autor en orden ascendente y luego clasifíquelos en orden descendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor)
        .thenComparing((b1, b2) -> Double.compare(b2.getRating(), b1.getRating())));
    
    // [Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book2, author=author2, rating=5.0), 
    //  Book(name=book4, author=author2, rating=2.0)]
    
  2. Ordene una lista de objetos de libros por autor en orden ascendente, luego clasifíquelos en orden descendente, luego nombre en orden descendente
    Collections.sort(library, Comparator.comparing(Book::getAuthor)
        .thenComparing((b1, b2) -> Double.compare(b2.getRating(), b1.getRating()))
        .thenComparing((b1, b2) -> b2.getName().compareTo(b1.getName())));
    
    // [Book(name=book5, author=author1, rating=4.0), 
    //  Book(name=book3, author=author1, rating=4.0), 
    //  Book(name=book1, author=author1, rating=3.0), 
    //  Book(name=book2, author=author2, rating=5.0), 
    //  Book(name=book4, author=author2, rating=2.0)]
    

Si quieres conocer otros artículos parecidos a Ordenar la lista de matrices de objetos en Java puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas