java consumer_Java8---Consumer

该博客主要展示了Java中Consumer接口的使用。定义了Person类,在Test类的main方法里,通过lambda表达式和普通方式创建Consumer对象,重写accept和andThen方法,对Person对象列表进行筛选和处理,还结合Predicate接口移除不符合条件的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值