public class Test {
// 方法的作用: 获取最大值 至于怎么获取, 获取什么的最大值, 需要我们传递Lambda表达式来实现
// 参数的作用: 获取最大值的方式(代码)
public static int getMax(Supplier<Integer> sup) {
return sup.get();
}
public static void main(String[] args) {
int[] arr = {100, 0, -50, 88, 99, 33, -30};
// 调用方法来获取数组中的最大值, 怎么获取呢? 我们来传递Lambda表达式实现
// 一开始不熟悉抽象方法的参数和返回值类型, 可以先写匿名内部类, 然后改写为Lambda
/*int maxValue = getMax(new Supplier<Integer>() {
@Override
public Integer get() {
int max = 0;
for (int i : arr) {
if (i > max) {
max = i;
}
}
return max;
}
});*/
// Lambda方式
int maxValue = getMax(()->{
int max = 0;
for (int i : arr) {
if (i > max) {
max = i;
}
}
return max;
});
System.out.println("最大值:" + maxValue);
}
}
public class Test {
// 定义方法用来消费一个字符串. 参数是 被消费的字符串 和 消费方式1 和 消费方式2
public static void method(String s, Consumer<String> con1, Consumer<String> con2){
// con1.accept(s);
// con2.accept(s);
// 使用andThen简化
con1.andThen(con2).accept(s);
}
public static void main(String[] args) {
// 传入两种消费方式
method("Hello",
(t) -> {
System.out.println(t.toUpperCase()); // HELLO
},
(t) -> {
System.out.println(t.toLowerCase()); // hello
});
}
}
public class Test {
// 方法作用: 按照步骤将字符串转换
// 参数: 被转换的字符串, 转换方式1, 转换方式2, 转换方式3
public static int change(String s, Function<String, String> fun1, Function<String, Integer> fun2, Function<Integer, Integer> fun3) {
return fun1.andThen(fun2).andThen(fun3).apply(s);
}
public static void main(String[] args) {
String str = "赵丽颖,20";
// 匿名内部类方式
int num1 = change(
str,
new Function<String, String>() { // 将字符串截取数字年龄部分, 得到字符串
@Override
public String apply(String s) {
return s.split(",")[1];
}
},
new Function<String, Integer>() { // 将上一步的字符串转换成为int类型的数字
@Override
public Integer apply(String s) {
return Integer.parseInt(s);
}
},
new Function<Integer, Integer>() { // 将上一步的int数字累加100, 得到结果int数字
@Override
public Integer apply(Integer integer) {
return integer + 100;
}
}
);
System.out.println(num1);
// Lambda方式
int num2 = change(
str,
s -> s.split(",")[1],
s -> Integer.parseInt(s),
i -> i + 100
);
System.out.println(num2);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |