import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; public class TestApplication { public static void main(String[] args) { List<user> lstEntity = Arrays.asList( new user("小红", 20, 1000), new user("小白", 21, 2400), new user("小蓝", 20, 1600), new user("小黑", 25, 1000), new user("小绿", 30, 3000) ); //filter // 示例:筛选出年龄大于20,并返回筛选后的集合 List<user> lstUser1 = lstEntity.stream().filter(user -> user.getAge() > 20).collect(Collectors.toList()); // 示例:筛选出age>20并且num>2000,并返回筛选后的集合 Predicate<user> predicate1 = u -> u.getAge() > 20; Predicate<user> predicate2 = u -> u.getNum() > 2000; List<user> lstUser2 = lstEntity.stream().filter(predicate1.and(predicate2)).collect(Collectors.toList()); //sorted // 示例:根据年龄进行倒序排序,并返回排序后的集合 List<user> lstAgeAes = lstEntity.stream().sorted(Comparator.comparing(user::getAge).reversed()).collect(Collectors.toList()); //map // 示例:筛选出age>20 并返回name集合 List<String> lstNames= lstEntity.stream().filter(u->u.getAge()>20).map(user::getName).collect(Collectors.toList()); // 示例:给所有name加上前缀,map操作会改变lstEntity集合 List<user> lstSetNames= lstEntity.stream().map(u->{u.setName("Hello!"+u.getName());return u;}).collect(Collectors.toList()); //limit // 示例:获取集合的前两条数据,并返回集合 List<user> lstLimits= lstEntity.stream().limit(2).collect(Collectors.toList()); //forEach // 示例:遍历打印集合 lstEntity.forEach(System.out::println); } }
import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class user { private String name; private Integer age; private Integer num; }
Java Stream 流 基本操作
猜你喜欢
转载自blog.csdn.net/liyayou/article/details/129616917
今日推荐
周排行