java
Lambda 표현식은 Java 8에 도입되었으며 Java 8의 가장 큰 기능으로 선전됩니다. Lambda 표현식은 함수형 프로그래밍을 용이하게 하고 개발을 크게 단순화합니다.
람다 식의 특징은 다음 구문입니다.
parameter -> expression body
다음은 람다 식의 중요한 특성입니다.
선택적 유형 선언 − 매개변수의 유형을 선언할 필요가 없습니다. 컴파일러는 매개변수 값에서 동일하게 추론할 수 있습니다.
매개변수 주위의 선택적 괄호 − 괄호 안에 단일 매개변수를 선언할 필요가 없습니다. 여러 매개변수의 경우 괄호가 필요합니다.
선택적 중괄호 − 본문에 하나의 명령문이 포함된 경우 표현식 본문에 중괄호를 사용할 필요가 없습니다.
선택적 반환 키워드 − 본문에 값을 반환하는 단일 표현식이 있는 경우 컴파일러는 자동으로 값을 반환합니다. 표현식이 값을 반환함을 나타내려면 중괄호가 필요합니다.
예를 들어 C:\> JAVA.
에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.public class Java8Tester { public static void main(String args[]) { Java8Tester tester = new Java8Tester(); //with type declaration MathOperation addition = (int a, int b) -> a + b; //with out type declaration MathOperation subtraction = (a, b) -> a - b; //with return statement along with curly braces MathOperation multiplication = (int a, int b) -> { return a * b; }; //without return statement and without curly braces MathOperation division = (int a, int b) -> a / b; System.out.println("10 + 5 = " + tester.operate(10, 5, addition)); System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction)); System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication)); System.out.println("10 / 5 = " + tester.operate(10, 5, division)); //without parenthesis GreetingService greetService1 = message -> System.out.println("Hello " + message); //with parenthesis GreetingService greetService2 = (message) -> System.out.println("Hello " + message); greetService1.sayMessage("Mahesh"); greetService2.sayMessage("Suresh"); } interface MathOperation { int operation(int a, int b); } interface GreetingService { void sayMessage(String message); } private int operate(int a, int b, MathOperation mathOperation) { return mathOperation.operation(a, b); } }
javac를 사용하여 클래스 컴파일 다음과 같이 컴파일러 -
C:\JAVA>javac Java8Tester.java
이제 다음과 같이 Java8Tester를 실행하십시오 -
C:\JAVA>java Java8Tester
다음 출력을 생성해야 합니다 -
10 + 5 = 15 10 - 5 = 5 10 x 5 = 50 10 / 5 = 2 Hello Mahesh Hello Suresh
위의 예에서 고려해야 할 중요한 사항은 다음과 같습니다.
람다 표현식은 주로 기능 인터페이스의 인라인 구현, 즉 단일 메서드만 있는 인터페이스를 정의하는 데 사용됩니다. 위의 예에서는 MathOperation 인터페이스의 연산 방식을 정의하기 위해 다양한 종류의 람다 표현식을 사용했습니다. 그런 다음 GreetingService의 sayMessage 구현을 정의했습니다.
Lambda 표현식은 익명 클래스의 필요성을 제거하고 Java에 매우 간단하면서도 강력한 기능적 프로그래밍 기능을 제공합니다.
람다 식을 사용하면 모든 최종 변수 또는 사실상 최종 변수(한 번만 할당됨)를 참조할 수 있습니다. 변수에 두 번째로 값이 할당되면 Lambda 표현식에서 컴파일 오류가 발생합니다.
예를 들어 C:\> JAVA.
에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.Java8Tester.java
라이브 데모public class Java8Tester { final static String salutation = "Hello! "; public static void main(String args[]) { GreetingService greetService1 = message -> System.out.println(salutation + message); greetService1.sayMessage("Mahesh"); } interface GreetingService { void sayMessage(String message); } }
javac를 사용하여 클래스 컴파일 다음과 같이 컴파일러 -
C:\JAVA>javac Java8Tester.java
이제 다음과 같이 Java8Tester를 실행하십시오 -
C:\JAVA>java Java8Tester
다음 출력을 생성해야 합니다 -
Hello! Mahesh
java
자바 대기열 인터페이스 이 자습서에서는 Java Queue 인터페이스와 해당 메서드에 대해 알아봅니다. Queue Java 컬렉션 프레임워크의 인터페이스는 큐 데이터 구조의 기능을 제공합니다. Collection 확장 인터페이스. 대기열을 구현하는 클래스 Queue 이후 인터페이스이므로 직접 구현할 수 없습니다. Queue의 기능을 사용하려면 , 이를 구현하는 클래스를 사용해야 합니다. 배열 데크 링크드리스트 우선순위 대기열 Queue를 확장하는 인터페이스 Queue 인터페이스는 다양한 하위 인터페이스로 확장됩니
자바 우선순위 큐 이 자습서에서는 예제를 통해 Java 컬렉션 프레임워크의 PriorityQueue 클래스에 대해 알아봅니다. PriorityQueue 클래스는 힙 데이터 구조의 기능을 제공합니다. 큐 인터페이스를 구현합니다. 일반 큐와 달리 우선순위 큐 요소는 정렬된 순서로 검색됩니다. 요소를 오름차순으로 검색한다고 가정해 보겠습니다. 이 경우 우선순위 큐의 헤드가 가장 작은 요소가 됩니다. 이 요소가 검색되면 다음으로 작은 요소가 대기열의 선두가 됩니다. 우선순위 큐의 요소는 정렬되지 않을 수 있다는 점에 유의하는