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

这一篇是上一篇的续写,为了不让篇幅太长,所以分开写了,如果没看过的可以去看看强大的Stream API(二) Stream的(filter,limit,skip,map)等中间操作之一,接下来就继续了。

sorted() 产生一个新流,其中按自然顺序排序
sorted(Comparator comp) 产生一个新流,其中按比较器顺序排序

这我还是拿一个员工的集合

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

根据名字去进行一个自然排序,也就是流中是什么顺序,然后输出的就是什么顺序,看一下排序的结果:


image.png

结果和我们期待的是一样的,在看看带有参数的排序的方式

@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
排序的结果。
中间操作就差不多了,还有一点点大家看看应该就明白了,接下来我将讲一下终止操作。
强大的Stream API(四) Stream的终止操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容