随学
实体类:
User有三个属性:
姓名name,年龄age,金额salary
List<User> users = Arrays.asList(
new User("张三",18,2000),
new User("李四",19,1000),
new User("王五",20,5000),
new User("赵六",17,7000),
);
1、Lambda表达式
简化代码,提取关键代码
//接口
public interface MyPredicate<T>{
public boolean test(T t);
}
public List<User> filterUser(List<User> list,MyPredicate<User> u){
List<User> users = new ArrayList<>();
for(User user : list){
if(u.test(user)){
users.add(user);
}
}
return users;
}
@Test
public void test(){
List<User> list = filterUser(users,(e) -> e.getSalary() > 2000);
list.forEach(System.out::println);
}
2、Stream API
@Test
public void test(){
users.stream()
.filter((e) -> e.getSalary() > 2000)
.forEach(System.out::println);
}
3、Pageable
概念:jdk1.8引入,是一个容器对象,使用isPresent方法判断包含的对象是否为空,isPresent方法返回false表示Optional包含的对象为空,否则可以使用get()取出对象进行操作。
优点:1、提醒做非空判断;
2、将对象非空监测标准化。