強大的Stream API(三) Stream的(filter,limit,skip,map)等中間操作之二

這一篇是上一篇的續(xù)寫,為了不讓篇幅太長,所以分開寫了,如果沒看過的可以去看看強大的Stream API(二) Stream的(filter,limit,skip,map)等中間操作之一,接下來就繼續(xù)了。

sorted() 產(chǎn)生一個新流,其中按自然順序排序
sorted(Comparator comp) 產(chǎn)生一個新流,其中按比較器順序排序

這我還是拿一個員工的集合

List<Employee> emps = Arrays.asList(
            new Employee(101, "張三", 28, 9999),
            new Employee(102, "李四", 49, 666),
            new Employee(103, "王五", 38, 333),
            new Employee(104, "趙六", 12, 7777),
            new Employee(105, "田七", 6, 222)
    );

1、sorted()

@Test
public void test2(){
    emps.stream()
        .map(Employee::getName)
        .sorted()
        .forEach(System.out::println);
}

根據(jù)名字去進行一個自然排序,也就是流中是什么順序,然后輸出的就是什么順序,看一下排序的結(jié)果:


image.png

結(jié)果和我們期待的是一樣的,在看看帶有參數(shù)的排序的方式

@Test
 public void test4() {
       emps.stream()
                .sorted((x,y) -> {
                   if(x.getAge() == y.getAge()) {
                        return x.getName().compareTo(y.getName());
                    }else{
                        return Integer.compare(x.getAge(),y.getAge());
                    }
                })
                .forEach(System.out::println);
    }

這個排序是先按照年齡進行排序,如果年齡一樣就按照名字進行排序

image.png
排序的結(jié)果。
中間操作就差不多了,還有一點點大家看看應(yīng)該就明白了,接下來我將講一下終止操作。
強大的Stream API(四) Stream的終止操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容