常用的函数式接口_Supplier和常用的函数式接口Supplier接口练习_求数组中元素最大值
2024-08-30 02:52:44
Supplier接口
package com.yang.Test.SupplierStudy;
import java.util.function.Supplier;
/**
* 常用的函数式接口
* java.util.function.Supplier<T>接口仅包含一个无惨的方法:T get()。用来获取一个泛型参数指定类型的对象数据
* Supplier<T>接口被称之为生产性接口,指定接口的泛型是什么类型,那么接口中的get方法就会产生什么类型的数据
*/
public class Study01 {
//定义一个方法,方法的参数传递Supplier<T>接口,泛型指定为String,get方法就会返回一个字符串
private static String getString(Supplier<String> supplier){
return supplier.get();
}
public static void main(String[] args) {
//调用getString方法,方法的参数Supplier他是一个函数式接口所以可以传递Lambda表达式
String s = getString(() -> {
//生产一个字符串并且返回
return "啦啦啦啦";
});
System.out.println(s);
//优化Lambda表达式
String s2 = getString(() -> "啦啦啦啦2");
System.out.println(s2);
}
}
练习_求数组中元素最大值
题目:
使用Supplier接口作为方法参数类型,通过Lambda表达式求出int数组中的最大值,提示:接口的泛型清使用Integer类
代码实现:
package com.yang.Test.SupplierStudy;
import java.util.function.Supplier;
public class Test {
//定义一个方法,用于获取int类型数组中元素的最大值,方法的参数传递Supplier,泛型为int的包装类Integer
private static int getMax(Supplier<Integer> supplier){
Integer max = supplier.get();
return max;
}
public static void main(String[] args) {
//定义一个int类型的数组并且赋值
int[] arr = {5,8,9,10,15,77,1,99};
int arrMax = getMax(() -> {
//获取数组中的最大值并且返回
//定义一个变量,来记录数组中的最大元素
int max = 0;
for (int i : arr) {
//判断如果max<遍历数组中的元素,则替换max作为最大值
if (i > max) {
max = i;
}
}
return max;
});
System.out.println(arrMax);
}
}
最新文章
- Oracle常见SQL语句
- GPUImage相关(转)
- Zeller公式推导及C#代码示例(待完善)
- AX 获得当前Grid的数据源的记录行数
- JS获取节点方法
- 博主教你制作类似9patch效果的iOS图片拉伸
- sass学习(1)——了解sass
- NChome导出补丁包需要注意的东西
- ASP.NET项目中使用CKEditor +CKFinder 实现上传图片
- js原型二
- lesson - 2 yum /单用户/救援模式/Linux 启动
- centos7上修改主机名
- python的sys模块
- XSS Stored 测试
- Cygwin工具安装和使用指导书
- Visual Studio For MacOS 踩坑记(二)
- JAVA基础知识总结:二十
- jQuery 事件绑定四种方式,delegate委托强大绑定在3.0中修改为on
- PHP 多态理解
- [转]分布式中Redis实现Session终结篇