java8 Consumer supplier predicate function 简单使用示例
2021/9/27 17:12:46
本文主要是介绍java8 Consumer supplier predicate function 简单使用示例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java8 Consumer基本使用
Java8之后提供了consumer接口,Consumer字面意思是消费者,这个接口里面只有一个accept方法,主要的功能是消费输入的数据,无返回。主要的几种使用方式有以下几种:
@Test public void testConsumer() { //1. 直接new一个consumer对象 ,实现里面的accept方法 Consumer consumer = new Consumer() { @Override public void accept(Object o) { System.out.println("consumer,消费者,只消费不生产"); } }; List<String> aList = Arrays.asList("13.a", "3", "5"); aList.stream().forEach(consumer); //2. lambda表达式可以返回一个consumer对象 consumer = (s) -> System.out.println(s); aList.stream().forEach(consumer); //3. 方法引用可以返回一个consumer对象 aList.stream().forEach(System.out::println); //4 IntConsumer DoubleConsumer LongConsumer 等是和Consumer平级的其他几种接口,里面有accept和andThen两个方法,andThen可以连续多用多次accept内部的逻辑。 IntConsumer intConsumer0 = s -> System.out.println(s + "intconsumer0"); IntConsumer intConsumer1 = s -> System.out.println(s + "intconsumer1"); intConsumer0.andThen(intConsumer1).accept(0); }
Java8 Supplier 使用
Supplier 接口是一个供给型的接口,Supplier接口内只有一个get方法,与consumer相反,supplier不接收任何参数,只返回数据。
@Test public void testSupplier() { //① 使用Supplier接口实现方法,只有一个get方法,无参数,返回一个值 Supplier<Integer> supplier = new Supplier<Integer>() { @Override public Integer get() { //返回一个随机值 return new Random().nextInt(); } }; System.out.println(supplier.get()); //② 使用lambda表达式, supplier = ()-> new Random().nextInt(); System.out.println(supplier.get()); //③ 使用方法引用 Supplier<Double> supplier2 = Math::random; System.out.println(supplier2.get()); //4. IntSupplier DoubleSupplier LongSupplier 里面只有一个getAsXXX的方法, IntSupplier intSupplier = new IntSupplier() { @Override public int getAsInt() { return new Random().nextInt(); } }; System.out.println(intSupplier.getAsInt()); }
Java8 Predicate接口
Predicate接口里面只有一个 test方法,其主要是职能是判断对错,传入一个参数返回一个boolean类型。
@Test public void testPredicate() { Predicate<Integer> predicate = new Predicate() { @Override public boolean test(Object o) { return false; } }; predicate = (s) -> s > 5; System.out.println(predicate.test(3)); List<Integer> aList = Arrays.asList(13, 3, 5); aList = aList.stream().filter(predicate).collect(Collectors.toList()); System.out.println(aList); }
Java8 Function接口
Function 接口是一个功能型接口,里面只有一个apply方法,主要起转换作用,将输入数据转换成另一种形式的输出数据。
@Test public void testFunction() { Function<String, Integer> function = new Function<String, Integer>() { @Override public Integer apply(String integer) { return integer.length(); } }; List<String> aList = Arrays.asList("13.a", "3", "5"); List newList = aList.stream().map(function).collect(Collectors.toList()); System.out.println(newList); }
这篇关于java8 Consumer supplier predicate function 简单使用示例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能