package com.an.java8.comsumer;
/**
* @description:
* @author: anpeiyong
* @date: Created in 2020/3/3 15:59
* @since:
*/
public class Person {
private Integer age;
private String name;
public Person(Integer age, String name) {
this.age = age;
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "age:"+age+"==name:"+name;
}
}
package com.an.java8.comsumer;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;
/**
* @description:
* @author: anpeiyong
* @date: Created in 2020/3/2 12:12
* @since:
*/
public class Test {
public static void main(String[] args) {
// Function
// Supplier
// Consumer
// Predicate
// Stream.of().forEach();
/**
* lambda表达式 提供 简单的方式 创建对象;
* lambda表达式的 目标类型 必须是 函数是接口
*/
Consumer consumer1 = x -> {
};
Consumer consumer=new Consumer() {
@Override
public void accept(Person person) {
}
@NotNull
@Override
public Consumer andThen(@NotNull Consumer super Person> after) {
return null;
}
};
// testAccept();
testAndThen();
}
public static void testAccept(){
List personList=new ArrayList<>();
//lambda实现
//创建Consumer对象,并重写 accept()
Consumer consumer= person->{
if (person.getName().equalsIgnoreCase("lili")){
personList.add(person);
}
};
//普通方式实现
Consumer consumer1=new Consumer() {
@Override
public void accept(Person person) {
if (person.getName().equalsIgnoreCase("lisi")){
personList.add(person);
}
}
};
Stream.of(new Person(12,"lili"),new Person(12,"lisi"),new Person(12,"zhangsan")).forEach(consumer);
Stream.of(new Person(12,"lili"),new Person(12,"lisi"),new Person(12,"zhangsan")).forEach(consumer1);
System.out.println(personList);
}
public static void testAndThen(){
List personList=new ArrayList<>();
//lambda实现
Consumer consumer= person->{
if (person.getName().equalsIgnoreCase("lili")){
personList.add(person);
}
};
//创建Consumer对象,并重写 andThen()
consumer=consumer.andThen(person -> {
//创建Predicate对象,并重写 test()
personList.removeIf(person1 -> person1.getAge() != 12);
// personList.removeIf(new Predicate() {
// @Override
// public boolean test(Person person) {
// return person.getAge() != 12;
// }
// });
});
Stream.of(new Person(12,"lili"),new Person(12,"lisi"),new Person(12,"zhangsan")).forEach(consumer);
System.out.println(personList);
}
}