天下脸皮共十分
我占八分

BiConsumer接口

这个接口跟《JAVA8 Consumer接口》很像,表达的想法也是一致的,都是消费的意思,我们先看下接口定义

@FunctionalInterface
public interface BiConsumer {
void accept(T t, U u);

/**本接口中的accept先执行,传入的BiConsumer 接口类型的参数,后执行accept*/
default BiConsumer<T, U> andThen(BiConsumer<? super T, ? super U> after) {
    Objects.requireNonNull(after);

    return (l, r) -> {
        accept(l, r);
        after.accept(l, r);
    };
}
}

这个接口接收两个泛型参数,跟Consumer一样,都有一个 accept方法,只不过,这里的,接收两个泛型参数,对这两个参数做下消费处理;使用这个函数式接口的终端操作有map的遍历;下面看下面的例子,两个参数消费数据的

Map map = new HashMap<>();
         map.put("a", "a");
         map.put("b", "b");
         map.put("c", "c");
         map.put("d", "d");
         map.forEach((k, v) -> {
             System.out.println(k);
             System.out.println(v);
         });

可以看到,Map接口的终端操作,forEach的参数就是BiConsumer函数接口,对HashMap 的数据进行消费;BiConsumer函数接口还有一个默认函数,andThen,接收一个BiConsumer接口,先执行本接口的,再执行传入的参数。
————————————————

赞(1) 打赏
未经允许不得转载:Stephen Young » BiConsumer接口
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏