@FunctionalInterface
interface MyLambda{
public double f(int x, int y);
}
public class Main {
public static void myforeach(MyLambda m, int[] arr1, int[] arr2){
for (int i = 0; i<arr1.length; i++)
System.out.println(m.f(arr1[i],arr2[i]));
}
public static double myinterestingmethod(int x, int y ){
return 3.14;
}
public double myNonstatic_interestingmethod(int x, int y ){
return 5.12;
}
public static void main(String[] args){
int arr1[] = {3,5,11};
int arr2[] = {4,12,5};
MyLambda euclidianDistance = (int a, int b)->{
return Math.sqrt(a*a+b*b);
};
myforeach(euclidianDistance,arr1, arr2);
System.out.println("\n");
MyLambda multiply = (int a, int b)->{
return a*b;
};
myforeach(multiply,arr1, arr2);
MyLambda mymethod = Main::myinterestingmethod;
System.out.println(mymethod.f(11,11));
Main m = new Main();
MyLambda mymethod2 = m::myNonstatic_interestingmethod;
System.out.println(mymethod2.f(11,11));
}
}
5.0
13.0
12.083045973594572
12.0
60.0
55.0
3.14
5.12
Leave a Reply