stream_排序

stream_排序

  • sorted() 自然排序(comparable)
  • sorted(Comparator com) 定制排序(Comparator)
    List<Book> books = Arrays.asList(
            new Book("java面向对象编程", 80D),
            new Book("第一本Docker书", 65D),
            new Book("大话设计模式", 45D),
            new Book("SpringSecurity实战", 80D),
            new Book("Kubernetes权威指南", 80D)
    );
    
    /**
     * 排序
     * sorted() 自然排序
     * sorted(Comparator com) 定制排序
     */
    @Test
    public void test6() {
        List<String> list = Arrays.asList("ccc", "ddd", "aaa", "eee", "bbb");
        list.stream()
                .sorted()
                .forEach(System.out::print);
        // 结果: aaabbbcccdddeee

        books.stream()
                .sorted((b1, b2) -> {
                    //先按价格排序,价格相同按名称排
                    if(b1.getPrice() == b2.getPrice()){
                        return b1.getTitle().compareTo(b2.getTitle());
                    }else{
                        return b1.getPrice().compareTo(b2.getPrice());
                    }
                }).forEach(System.out::println);
        /* 结果
        Book(id=null, name=null, title=大话设计模式, desc=null, price=45.0)
        Book(id=null, name=null, title=第一本Docker书, desc=null, price=65.0)
        Book(id=null, name=null, title=java面向对象编程, desc=null, price=80.0)
        Book(id=null, name=null, title=SpringSecurity实战, desc=null, price=80.0)
        Book(id=null, name=null, title=Kubernetes权威指南, desc=null, price=80.0)
        */
    }
posted on 2024-12-23 14:40  屋蓝  阅读(7)  评论(0)    收藏  举报