Cómo ordenar un ArrayList con diferente tipo de datos en java

Cristyan:

Tengo un ArrayList que contiene los datos siguientes: nombre de un objeto y algunos detalles sobre él (toma de let como ejemplo un libro y su precio). Así tendríamos:

  1. Book_Nr1_Name 5
  2. Book_Nr2_Name 8
  3. Book_Nr3_Name 4

Donde los números 5,8,4 representa el precio de cada libro. ¿Cómo puedo solucionar este array descendente por el precio, y obtener el resultado final de esta manera:

  1. Book_Nr2_Name 8
  2. Book_Nr1_Name 5
  3. Book_Nr3_Name 4
Jason:

Crear un objeto libro para representar el nombre y el precio. A continuación, crear una colección de todos los libros. Luego ordenar por el precio utilizando un comparador que compara valores enteros. A continuación, a cobro revertido a una lista ya que es solucionado.

  static class Book {

        private final String name;

        private final int price;

        Book(String name, int price) {
            this.name = name;
            this.price = price;
        }

        public String getName() {
            return name;
        }

        public int getPrice() {
            return price;
        }
    }
        List<Book> books = Arrays.asList(
                new Book("Book_Nr1_Name", 5),
                new Book("Book_Nr2_Name", 8),
                new Book("Book_Nr3_Name", 4));

        List<Book> sortedByPrice = books.stream()
                .sorted(Comparator.comparingInt(Book::getPrice).reversed())
                .collect(Collectors.toList());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=349662&siteId=1
Recomendado
Clasificación