본문 바로가기

Computer Sience/Java33

[JAVA8] Stream 목차Stream 특징 Stream 파이프라인 중개 오퍼레이션 종료 오퍼레이션 참고 자료 Stream 특징  Stream은 데이터 저장소가 아니다Stream은 데이터의 저장소가 아니라 데이터를 처리하는 파이프라인 컬렉션(List, Set ...)은 데이터를 담고 있지만, Stream은 그 데이터를 연속된 요소(sequence of elements)로서 처리하는 작업을 지원 List numbers = Arrays.asList(1, 2, 3);Stream stream = numbers.stream(); // 데이터를 처리하는 스트림 생성 여기서 스트림은 데이터를 담고 있는 게 아니라, numbers 리스트에 있는 데이터를 연산할 때 사용하는 것  Functional in natureStream API는 함수형.. 2024. 10. 2.
[JAVA8] 자바 8 API의 기본 메소드와 스태틱 메소드 목차 Iterable 기본 메소드 Collection 기본 메소드 Comparator 기본 메소드 및 스태틱 메소드 참고 자료Iterable 기본 메소드 forEach()public interface Iterable { default void forEach(Consumer action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }} forEach() - 활용public class Test { public static void main(String[] args) { List name = new ArrayList(); na.. 2024. 10. 2.
[JAVA8] 인터페이스 기본 메소드와 스태틱 메소드 목차 기본 메소드 (Default Methods)스태틱 메소드 (Static Methods)참고 자료기본 메서드 (Default Methods)기본 메서드(Default Methods) ?인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법 해당 인터페이스를 구현한 클래스를 깨트리지 않고 새 기능을 추가할 수 있다 기본 메소드는 구현체가 모르게 추가된 기능으로 그만큼 리스크가 있다 컴파일 에러는 아니지만 구현체에 따라 런타임 에러가 발생할 수 있다 반드시 문서화 할 것. (@implSpec 자바독 태그 사용) Object가 제공하는 기능 (equals, hasCode)는 기본 메소드로 제공할 수 없다 구현체가 재정의해야 한다 본인이 수정할 수 있는 인터페이스에만 기본 메소드를 제공할 수 있다.. 2024. 10. 2.
[JAVA8] 메소드 래퍼런스 목차 UnaryOperator 인터페이스 Greeting 클래스 메소드 래퍼런스 참고 자료 UnaryOperator 인터페이스 @FunctionalInterfacepublic interface UnaryOperator extends Function { static UnaryOperator identity() { return t -> t; }} Function 인터페이스를 상속받은 함수형 인터페이스이다. Function 인터페이스는 매개 변수 타입 T, 반환 타입 R을 지정해야 하지만UnaryOperator 인터페이스는 하나의 타입만 지정하면 된다. 즉 반환 타입 = 매개 변수 타입 같은 경우에 사용하면 된다.  활용 public class Main { public stati.. 2024. 9. 30.
[JAVA8] 람다 표현식 + 변수 캡쳐 & 변수 쉐도잉 목차 로컬 클래스 / 내부 클래스 Java8 이전 익명 클래스 /로컬 클래스에서 변수 캡쳐 Java8 이후 익명 클래스 /로컬 클래스에서 변수 캡쳐 변수 쉐도잉(Shadowing)변수 캡쳐 정리 참고 자료 로컬 클래스 / 내부 클래스로컬 클래스 (Local Class)메서드 내에서 정의된 클래스를 의미 이 클래스는 메서드의 실행 흐름 안에서만 사용될 수 있다. public class LocalClassExample { public void doSomething() { // 로컬 클래스 class LocalClass { void printMessage() { System.out.println("Hello!"); .. 2024. 9. 30.
[JAVA8] 자바에서 제공하는 함수형 인터페이스 목차 함수형 인터페이스 소개 참고 자료 Function 인터페이스 람다 표현식 간소화 조건 BiFunction 인터페이스 Consumer 인터페이스 Supplier 인터페이스 Predicate 인터페이스 함수형 인터페이스? https://20240228.tistory.com/295 [JAVA8] 함수형 인터페이스와 람다 표현식 + 자바 함수형 프로그래밍목차 함수형 인터페이스란?람다 표현식?람다 표현식 - 메소드 매개변수 활용 람다 표현식 - 변수로 저장 람다 표현식 - 리턴 타입 활용 자바에서 함수형 프로그래밍 / 일급 객체 함20240228.tistory.comFunction 인터페이스 Plus10 클래스 implemets Function 인터페이스 /** * Function 함수형 인터페이스 T: 매.. 2024. 9. 30.