Java8新特性 - 03 - 函数式接口03 - Consumer详解
2022/2/21 22:26:31
本文主要是介绍Java8新特性 - 03 - 函数式接口03 - Consumer详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.Consumer接口说明
消费者
接口
核心方法void accept(T t)
: 有参数,无返回值
* 说明 : * 1.接口名称 : Consumer * 2.方法 * void accept(T t) : 有参数,无返回值; * default Consumer<T> andThen(Consumer<? super T> after) : 有多个的时候,可以联动的使用 * 3.应用场景 : * 当你需要对某些数据做处理且不需要返回值的时候,可以使用此接口 * * 【注意】 : 此处的 andThen 方法可能会比较难理解; * 不过,跟着代码 结合 运行结果来理解,还是比较简单的 *
2.使用案例
2.1 案例代码
package com.northcastle.G_functionalInterface; /** * @Classname ConsumerTest * @Description 函数式接口 : 消费者 * @Date 2022-02-18 12:32 * @Created by Hongchang Wang */ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.function.Consumer; public class ConsumerTest { public static void main(String[] args) { //1.声明一个int类型的数组 int[] nums = {1,3,5,7,2,6}; //2.使用Consumer.accept()进行消费 consumerData(numArray ->{ int sum = 0; for (int i : numArray) { sum += i; } System.out.println("数组的和是 : "+sum); },nums); System.out.println("===================="); //3.使用 andThen 方法进行连续消费 List<Integer> numList = Arrays.asList(1,3,5,7,2,6); consumerDataMore(numArray ->{ System.out.println("第一个消费方法 begin"); //将数据 【正序】 排列后输出 Collections.sort(numArray,(a,b)-> a-b); // 一句话排序,非常的简单 System.out.println(numArray); System.out.println("第一个消费方法 end"); System.out.println(); },numArray ->{ System.out.println("第二个消费方法 begin"); //将数据 【倒序】 排列后输出 Collections.sort(numArray,(a,b)->b-a); System.out.println(numArray); System.out.println("第二个消费方法 end"); System.out.println(); },numArray ->{ System.out.println("第三个消费方法 begin"); //直接将数据打印输出 : 此时应该与 第二个消费方法的处理一致 System.out.println(numList); System.out.println("第三个消费方法 end"); },numList); } /** * 1.消费数据的使用:消费一个int类型的数组,将数据求和后输出 * @param consumer * @param nums */ public static void consumerData(Consumer<int[]> consumer,int[] nums){ consumer.accept(nums); } /** * 2.多个消费的连续使用 : andThen方法 * @param consumer1 第一个消费 * @param consumer2 第二个消费 * @param consumer3 第三个消费 * @param nums 被消费的数据数据 */ public static void consumerDataMore(Consumer<List<Integer>> consumer1, Consumer<List<Integer>> consumer2, Consumer<List<Integer>> consumer3, List<Integer> nums){ //使用andThen方法连续消费nums数组 /** * 解释 : 先执行第一个消费的 accept()方法 * 再执行第二个消费的 accept()方法 * 再执行第三个消费的 accept()方法 */ consumer1.andThen(consumer2).andThen(consumer3).accept(nums); } }
2.2 运行结果
3.完成
Congratulations!
You are one step closer to success!
这篇关于Java8新特性 - 03 - 函数式接口03 - Consumer详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行