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