Commit 240b65a1 by Patryk Czarnik

MojFrameworkFunkcyjny

parent 4232948e
package p25_lambdy;
public class MojFrameworkFunkcyjny {
// Tutaj wczuwam się w rolę twórcy jakiegoś uniwersalnego rozwiązania,
// z którego będą korzystać inni programiści (albo ja sam w innych klasach).
// W tej klasie możemy "się napracować" i używać jawnie nazw FunkcjaLiczbowa czy oblicz
// stosuje podaną funkcję do wszystkich elementów tablicy
public static void zastosujFunkcjeDoTablicy(double[] t, FunkcjaLiczbowa f) {
for (int i = 0; i < t.length; i++) {
......
......@@ -2,21 +2,29 @@ package p25_lambdy;
import java.util.Arrays;
import static p25_lambdy.MojFrameworkFunkcyjny.zastosujFunkcjeDoTablicy;
public class UzycieFrameworku {
// Tutaj występuję w roli programisty, który korzysta z biblioteki.
// W tym miejscu już nie musimy używać nazw FunkcjaLiczbowa i oblicz,
// tylko przekazujemy funkcję do ogólnej operacji wpisując wyrażenie lambda.
// Tak właśnie korzysta się z lambd w połączenie ze streamami i innymi rozwiązaniami obecnymi w Javie.
public static void main(String[] args) {
double[] a = {0, 1, 2, -5, 15, 35};
System.out.println(Arrays.toString(a));
MojFrameworkFunkcyjny.zastosujFunkcjeDoTablicy(a, x -> x+1);
zastosujFunkcjeDoTablicy(a, x -> x+1);
System.out.println(Arrays.toString(a));
MojFrameworkFunkcyjny.zastosujFunkcjeDoTablicy(a, x -> x*x);
zastosujFunkcjeDoTablicy(a, x -> x*x);
System.out.println(Arrays.toString(a));
MojFrameworkFunkcyjny.zastosujFunkcjeDoTablicy(a, arg -> Math.sqrt(arg));
zastosujFunkcjeDoTablicy(a, arg -> Math.sqrt(arg));
System.out.println(Arrays.toString(a));
MojFrameworkFunkcyjny.zastosujFunkcjeDoTablicy(a, Math::sqrt);
zastosujFunkcjeDoTablicy(a, Math::sqrt);
System.out.println(Arrays.toString(a));
}
......
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