@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

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *