黑马程序员
常用函数式接口–Supplier
练习–求数组元素最大值
package Lambda_Return;
import java.util.function.Supplier;
public class SupplierDemo {
public static int getMax(Supplier<Integer> sup){
return sup.get();
}
public static void main(String[] args) {
int[] arr={1,2,3,45,8,99,104};
int max=getMax(()->{
int maxTmp=arr[0];
for (int i : arr) {
if (i>maxTmp)
maxTmp=i;
}
return maxTmp;
});
System.out.println(max);
}
}
常用函数式接口–Consumer
package Lambda_Return;
import java.util.function.Consumer;
public class ConsumerDemo {
public static void method(String name, Consumer<String> con){
con.accept(name);
}
public static void main(String[] args) {
method("小红",(name)->{
System.out.println(name);
});
}
}
Consumer默认方法–andThen
package Lambda_Return;
import java.util.function.Consumer;
public class Consumer_andThen {
public static void method(String s, Consumer<String > con1,Consumer<String> con2){
con1.andThen(con2).accept(s);
}
public static void main(String[] args) {
method("Hello",(s)->{
System.out.println(s.toLowerCase());
},(s)->{
System.out.println(s.toUpperCase());
});
}
}
Consumer接口练习–格式化打印信息
package Lambda_Return;
import java.util.function.Consumer;
public class ConsumerTest {
public static void main(String[] args) {
String[] arr={"古力娜扎,女","迪丽热巴,女","戈尔马丹,男",};
printInfo(arr,(s)->{
String[] split = s.split(",");
System.out.print("姓名:"+split[0]);
},(s)->{
String[] split = s.split(",");
System.out.println(" 性别:"+split[1]);
});
}
public static void printInfo(String[] msg, Consumer<String> name,Consumer<String> sex){
for (String s : msg) {
name.andThen(sex).accept(s);
}
}
}
姓名:古力娜扎 性别:女
姓名:迪丽热巴 性别:女
姓名:戈尔马丹 性别:男