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

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

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

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

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

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


强大的Stream API(三) Stream的(filter,limit,skip,map)等中间操作之二_第1张图片
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);
    }

这个排序是先按照年龄进行排序,如果年龄一样就按照名字进行排序

强大的Stream API(三) Stream的(filter,limit,skip,map)等中间操作之二_第2张图片
image.png
排序的结果。
中间操作就差不多了,还有一点点大家看看应该就明白了,接下来我将讲一下终止操作。
强大的Stream API(四) Stream的终止操作

你可能感兴趣的:(强大的Stream API(三) Stream的(filter,limit,skip,map)等中间操作之二)