Heim >Java >javaLernprogramm >Funktionale Programmierung in Java
Java Functional Programming wird ab Java 8derVersion eingeführt. Funktionale Programmierung bedeutet eine grundlegende Änderung des Ansatzes zur Problemlösung. Die funktionale Programmierung ermöglicht das Programmieren mit Ausdrücken (Deklarieren von Funktionen), das Übergeben von Funktionen als Argumente und die Verwendung von Funktionen als Anweisungen.
Arten der funktionalen Programmierung
WERBUNG Beliebter Kurs in dieser Kategorie PROGRAMMIERSPRACHEN - Spezialisierung | 54 Kursreihe | 4 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Bevor wir uns mit dem Konzept der funktionalen Programmierung befassen, wollen wir uns den Unterschied zwischen funktionaler und strukturierter Programmierung ansehen. Bei der strukturierten Programmierung liegt der Schwerpunkt auf der logischen Struktur oder dem logischen Prozess, während sich die funktionale Programmierung hauptsächlich auf Daten konzentriert. Die strukturierte Programmierung folgt einem Top-Down-Ansatz, während die funktionale Programmierung von unten nach oben erfolgt.
Funktionale Programmierung ist in winzige Laufzeiteinheiten, sogenannte Objekte, unterteilt, während strukturierte Programmierung kleine Einheiten oder Funktionen unterteilt. Strukturierte Programmierung ist weniger sicher, wohingegen funktionale Programmierung sehr sicher ist. Strukturierte Programmierung kann keine komplexen Probleme bewältigen, wohingegen funktionale Programmierung jede Ebene eines komplexen Problems behandelt.
Im Folgenden finden Sie die genannten Beispiele:
Syntax:
objectName.stream();
Code:
Animal.java
package com.streams; public class Animal { String name; String color; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Animal(String name, String color) { super(); this.name = name; this.color = color; } }
AnimalNames.java
package com.streams;//creating package //importing required packages to the code import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class AnimalNames { public static void main(String[] args) { getMyDogNames();//calling the method } private static void getMyDogNames() { Animal a1=new Animal("Puppy","black"); //creating a object for animal class Animal a2=new Animal("Tommy","brown");//creating a object for animal class Animal a3=new Animal("Zimmy","white");//creating a object for animal class List<Animal> persons = Arrays.asList(a1,a2,a3); //passing object references to list String dogName = persons.stream() //covert all elements into stream .filter(name -> "Puppy".equals(name.getName()))//filtering given elements from persons class .map(Animal::getName) //persons elements iterate over map .findAny()//find out the given element passed from filter .orElse("");// System.out.println("Dog Name :" + dogName); //print the dog name List<String> collect = persons.stream() .map(Animal::getName) .collect(Collectors.toList());//collecting all names from list System.out.println("All Dog names"); collect.forEach(System.out::println);//iterating collection with for each loop } }
Ausgabe:
Erklärung:
Syntax:
(arguments) -> { //code for implementation } Arguments: argument-list can be have values or no values Example: arguments1, arguments2, arguments3,…… ->: Joins code implementation and arguments.
Syntax:
(argument1) -> { //code for implementation }
Code:
package com.lambda;//creating a package interface Square{ //creating interface for quare public int getArea(int side); //create a method for get area } public class AreaOfSquare{ //As we are working with Lambda expression so no need to implement interface of square public static void main(String[] args) { Square area=(side)->{ // Lambda expression with only one argument. Return side*side; //returning area }; System.out.println(“Area of Square=>”+area.getArea(10)); //printing area by calling interface getArea method } }
Ausgabe:
Erklärung:
Syntax:
() -> { //code for implementation }
Code:
package com.lambda;//creating a package interface Name{ //creating interface for Name public String getMyName(); //create a method for get name } public class MyNameString{ //As we are working with Lambda expression so no need to implement interface of Name public static void main(String[] args) { Name name=()->{ // Lambda expression with out argument. return "Hi, Amardeep!"; //returning name }; System.out.println(name.getMyName()); //printing name by calling interface getMyName method } }
Ausgabe:
Erklärung:
Syntax:
Class-Name:: static method name
Code:
package method.reference;//creating package interface RectangleArea{ //creating RectangleArea interface public int getArea(int l,int b); //creating method getArea in interface } public class StaticMethodReference { //creating a classs public static int showRectangleArea(int length, int breadth){ //creating method for getting rectangle area return length*breadth; } public static void main(String[] args) { // Referring static method RectangleArea area = StaticMethodReference::showRectangleArea; //calling class name with method name // Calling interface method int outArea=area.getArea(10,20); System.out.println("Area of rectangle :"+outArea);//printing area } }
Ausgabe:
Erklärung:
Funktionale Programmierung wird mit Streams, Lambda-Ausdrücken und Methodenreferenzen erreicht. Es reduziert Codezeilen und verbessert die Leistung.
Das obige ist der detaillierte Inhalt vonFunktionale Programmierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!