본문 바로가기

공부/Java28

Optional<T> 1. Optional 이란? - null이 올 수 있는 객체 (Integer 등 객체) - 사용하는 이유 - null을 직접 다루는 것은 위험 - null 체크. 코드 지저분 방지 - 반환값 - null - 객체 2. T 타입 객체의 래퍼클래스 3. Optional 객체 생성하기 4. Optional 객체의 값 가져오기 2022. 3. 13.
스트림(Stream) - 3 (스트림 연산) 연산종류 - 중간연산 : 연산결과가 스트림 - 최종연산 : 연산결과가 스트림이 아닌 연산 1. 중간연산 - filter(조건) : 조건 - distinct : 중복 제거 - map : 요소 변환 - limit : 자르기(앞에서 부터) - skip(long n) : 건너뛰기 (skip(3) : 0,1,2 건너뛰고 3번째부터 끝까지) - sorted : 정렬 - peek : 작업 수행 forEach 1-1) filter 1-2) limit, skip 1-3) sorted - Comparator.comparing(정렬기준) - thenComparing : 여러 정렬기준이 있을때 1-4) map : 변환 1-5) peek : forEach와 다르게 스트림을 소비하지 않음 2. 최종연산 - 핵심 2가지 1. re.. 2022. 3. 13.
스트림(Stream) - 2 (스트림 만들기) 1. 스트림은 1회용(최종연산시) - stream에 대해 최종연산을 수행하면 stream이 닫힌다. - 해결방법 2. 스트림 만들기 3. 임의의 수 만들기 - 5개만 (limit) - 5이상 9이하 (ints) 4. 정해진 범위 만들기 - IntStream 5. 람다식 - iterate(), generate() - iterate() : seed 사용, 다음요소 계산 - generate() : seed 사용X 2022. 3. 13.
추상화(추상클래스, 인터페이스) 1. 추상화 - 공통적으로 사용되는 것을 뽑는 것 ClassA와 ClassB의 메서드 중복을 추상화를 통해 다음과 같이 바꿀 수 있다. 2. 추상클래스와 인터페이스 // 추상클래스 추상 메소드 abstract void process(); // 인터페이스 추상 메소드 (생략 가능) void process(); 2-1. 추상클래스 - 메소드 구현 가능 - 공통된 기능 상속할 경우 2-2. 인터페이스 - 메서드 선언만 가능 - 규격, 표준 2022. 3. 11.
스트림(Stream) - 1 스트림 - 다양한 [ 데이터 소스 ]를 [ 표준화된 방법 ]으로 다루기 위한 것 -> 그동안 List, Map, Set 등 사용방법이 달랐음 [ 특징 ] 1. 데이터 소스로부터 "읽기"만 할 뿐 변경하지 않는다. 2. Iterator 처럼 "일회용"이다. 3. 최종 연산 전까지 중간연산이 수행되지 않는다. (지연된 연산) 4. 작업을 내부 반복으로 처리한다. 5. 병렬스트림( parallel() ) - 큰 작업 빠르게 [ 기본형 스트림 ] - IntStream, LongStream, DoubleStream - 방법 1. 스트림 만들기 2. 중간 연산 (0~N번) 3. 최종 연산 (1번) 1. 스트림 만들기 ( 컬렉션, 배열, 람다, 난수 등 가능) - Stream stream1 = list.stream(.. 2022. 3. 8.
람다식 -> 메서드 참조 1. 메서드참조 : 람다식을 더 간단히 한 것! 2. 변경방법 : 클래스이름::메서드명 1) 메서드 참조 - 기존 람다식 s -> Integer.parseInt(s) - 메서드 참조 Integer::parseInt 2) 생성자 참조 - 기존 람다식 i -> new MyClass(i); - 메서드 참조 MyClass::new 2) 배열 참조 - 기존 람다식 x -> new int[x] - 메서드 참조 int[]::new; 2022. 3. 1.