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