Commit 6be602af by Patryk Czarnik

Dopiski do lambd

parent 1de5e882
package p13_lambdy.v2; package p13_lambdy.v2;
public class MojFrameworkFunkcyjny { public class MojFrameworkFunkcyjny {
/* Tutaj występujęmy w roli autora frameworku / biblioteki programistycznej.
* Tworzymy ogólne definicje, które będą używane przez innych programistów do piania "zwykłych programów".
* Tutaj w sposób jawny używamy takich nazw, jak FunkcjaLiczbowa czy oblicz.
*/
public static void zamien(double[] tablica, FunkcjaLiczbowa f) { public static void zamien(double[] tablica, FunkcjaLiczbowa f) {
for (int i = 0; i < tablica.length; i++) { for (int i = 0; i < tablica.length; i++) {
tablica[i] = f.oblicz(tablica[i]); tablica[i] = f.oblicz(tablica[i]);
......
...@@ -3,6 +3,13 @@ package p13_lambdy.v2; ...@@ -3,6 +3,13 @@ package p13_lambdy.v2;
import java.util.Arrays; import java.util.Arrays;
public class UzycieFramworku { public class UzycieFramworku {
/* W tym miejscu występujemy w roli "zwykłego programisty", który towrzy jakąś aplikację
* i korzysta w niej z ogólnego rozwiązania przygotowane w 'MojFrameworkFunkcyjny'.
* Tutaj nie musimy już jawnie pisać FunkcjaLiczbowa ani oblicz,
* tylko przekazujemuy lambdy jako parametry do operacji zamien.
*
* Przypomina to korzystanie z streamów (folter, map, forEach itd...)
*/
public static void main(String[] args) { public static void main(String[] args) {
double[] a = { 0, 10, 20, 30, 40, 50 }; double[] a = { 0, 10, 20, 30, 40, 50 };
......
package p13_lambdy.v2;
import static p13_lambdy.v2.MojFrameworkFunkcyjny.zamien;
import java.util.Arrays;
public class UzycieFramworku_ImportStatic {
public static void main(String[] args) {
double[] a = { 0, 10, 20, 30, 40, 50 };
double[] b = { 100, 16, 25, 2 };
System.out.println("a: " + Arrays.toString(a));
System.out.println("b: " + Arrays.toString(b));
System.out.println();
zamien(a, x -> x*x);
System.out.println("a: " + Arrays.toString(a));
zamien(a, x -> x+5);
System.out.println("a: " + Arrays.toString(a));
zamien(b, Math::sqrt);
System.out.println("b: " + Arrays.toString(b));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment