Java 함수형 프로그래밍은 Java 8번째 버전 이후에 등장합니다. 함수형 프로그래밍은 문제 해결에 대한 접근 방식의 근본적인 변화를 의미합니다. 함수형 프로그래밍을 사용하면 표현식(함수 선언)을 사용하여 프로그래밍하고, 함수를 인수로 전달하고, 함수를 명령문으로 사용할 수 있습니다.
함수형 프로그래밍의 종류
광고 이 카테고리에서 인기 있는 강좌 프로그래밍 언어 - 전문 분야 | 54 코스 시리즈 | 4가지 모의고사무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
함수형 프로그래밍 개념에 들어가기 전에 함수형 프로그래밍과 구조적 프로그래밍의 차이점을 살펴보겠습니다. 구조적 프로그래밍은 논리적 구조나 프로세스를 강조하는 반면, 함수형 프로그래밍은 주로 데이터에 중점을 둡니다. 구조적 프로그래밍은 하향식 접근 방식을 따르는 반면, 함수형 프로그래밍은 아래에서 위쪽으로 따릅니다.
함수형 프로그래밍은 객체라고 하는 작은 런타임 개체로 분리되는 반면, 구조적 프로그래밍은 작은 단위나 함수로 분리됩니다. 구조적 프로그래밍은 덜 안전하지만, 함수형 프로그래밍은 매우 안전합니다. 구조적 프로그래밍은 복잡한 문제를 처리할 수 없는 반면, 함수형 프로그래밍은 모든 수준의 복잡한 문제를 처리합니다.
다음은 언급된 예입니다.
구문:
objectName.stream();
코드:
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 } }
출력:
설명:
구문:
(arguments) -> { //code for implementation } Arguments: argument-list can be have values or no values Example: arguments1, arguments2, arguments3,…… ->: Joins code implementation and arguments.
구문:
(argument1) -> { //code for implementation }
코드:
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 } }
출력:
설명:
구문:
() -> { //code for implementation }
코드:
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 } }
출력:
설명:
구문:
Class-Name:: static method name
코드:
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 } }
출력:
설명:
함수형 프로그래밍은 스트림, 람다 표현식, 메서드 참조를 통해 이루어집니다. 코드 줄을 줄이고 성능을 향상시킵니다.
위 내용은 Java의 함수형 프로그래밍의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!