Stream 介绍

Stream 流可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。

使用示例

class User {
   int id, age;
   String name;
   public User(int id, int age, String name) {
       this.id = id;
       this.age = age;
       this.name = name;
   }

    public int getId() { return id; }
    public int getAge() { return age;}
    public String getName() { return name; }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}

public class Test {
    public static void main(String[] args) throws Exception{
        User u1 = new User(1, 21, "a");
        User u2 = new User(2, 22, "b");
        User u3 = new User(3, 23, "c");
        User u4 = new User(4, 24, "d");
        User u5 = new User(5, 25, "e");
        User u6 = new User(6, 26, "f");
        List<User> list = Arrays.asList(u1, u2, u3, u4, u5, u6);
        //id是偶数的用户
        list.stream().filter(user -> { return user.getId()%2 == 0;})
                //年龄大于23岁;
                .filter(user -> {return user.getAge() > 23;})
                //姓名改为大写
               .map(user -> {return user.getName().toUpperCase();})
                //姓名逆序
                .sorted((user1, user2)->{return user2.compareTo(user1);})
                //只要两人
                .limit(2)
                //遍历打印
                .forEach(System.out::println);
    }
}

结果:
F
D

相关文章: