簡體   English   中英

如何在java中對具有不同數據類型的arraylist進行排序

[英]How to sort an arraylist with different data type in java

我有一個包含下一個數據的數組列表:一個對象的名稱和一些關於他的詳細信息(讓我們以一本書和他的價格為例)。 所以我們會有:

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

其中數字 5、8、4 代表每本書的價格。 我怎樣才能按價格降序對這個數組進行排序,並得到這樣的最終輸出:

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

創建一個對象 Book 來表示名稱和價格。 然后創建所有書籍的集合。 然后我們使用比較整數值的比較器按價格排序。 然后我們收集到一個列表,因為它是排序的。

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

嘗試這個 :-

Collections.sort(al, (ob1,ob2)-> -ob1.getPrice().compareTo(ob2.getPrice()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM