Java8 4

Java8 Stream

Stream 이란? 컬렉션, 배열등에 대해 저장되어있는 요소들을 하나씩 참조하며 반복적인 처리를 가능하게 하는 기능이다. Stream을 이용한다면 불필요한 for문과 그 안에서 이루어지는 if문 등의 분기 처리를 쓰지 않고도 깔끔하게 직관적인 직관적인 코드로 변형할 수 있다. Stream API 사용법 Stream API는 데이터, Stream생성(), 중개연산()...종료연산(); 구조로 사용된다. Stream 특징 데이터를 담고 있는 저장소 (컬렉션)이 아니다 Funtnional in nature 스트림이 처리하는 데이터 소스를 변경하지 않는다 스트림으로 처리하는 데이터는 오직 한번만 처리한다 무제한일 수도 있다(Short Circuit 메소드를 사용해서 제한할 수 있다 중개 오퍼레이션은 근본적으로 ..

Language/Java 2022.07.02

자바에서 제공하는 함수형 인터페이스

Function T타입을 받아서 R타입을 리턴하는 함수 인터페이스 사용 방법 1 public class Plus10 implements Function { @Override public Integer apply(Integer integer) { return integer + 10; } } public class Foo { public static void main(String[] args) { Plus10 plus10 = new Plus10 (); System.out.println (plus10.apply ( 1 )); } } 사용 방법 2 import java.util.function.Function; public class Foo { public static void main(String[] args..

Language/Java 2022.06.18

함수형 인터페이스와 람다 표현식 소개

함수형 인터페이스 인터페이스 안에 추상 메소드가 하나만 있는것을 말한다. 함수형 인터페이스를 사용하고 싶으면 @FunctionalInterface 어노테이션을 사용하면 된다. @FunctionalInaterface는 자바에서 지원하기 때문에 import 할 필요가 없고 @FunctionalInaterface을 안써도 사용이 가능하지만 함수형 인터페이스인걸 알리기 위해 사용해주는것이 좋다 @FunctionalInterface을 사용하면 추상 메소드가 2개 이상일시 @FunctionalInterface에 에러 표시가 나타난다. static,default 사용하여 다른 메소드를 사용이 가능하다 @FunctionalInterface public interface RunSomething { void doIt();..

Language/Java 2022.06.15

java8과 java11 차이점

자바8 인터페이스에서 디폴트 메소드와 정적 메소드를 포함 디폴트 메소드는 하위 구현 클래스에서 재정의가 가능하지만, 정적 메소드는 구현 클래스에서 재정의할 수 없다. interface TestInterface { default String logic() { return "test"; } static String logic2() { return "test2"; } } 람다 표현식 람다식은 메소드를 하나의 식으로 표현한 것을 말한다. 그리고 람다식은 함수의 이름이 없기 때문에 익명 함수라고 부르며, 메소드의 매개 변수로 전달되거나 메소드의 결과로 반환될 수 있는 특징이 있어서 함수를 변수로 다룰 수 있다는 장점이 있다. 람다식은 메소드를 식으로 나타낸 것이긴 하지만, 엄밀히 말하면 이 메소드를 가진 객체를 ..

Language/Java 2022.05.08