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-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程