Java/객체지향 65

[객체지향][람다와 스트림] - Optional

https://youtu.be/W_kPjiTF9RI?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [Optional란?] T 타입의 객체의 래퍼 클래스(Integer, Long 등) 모든 종류의 객체를 저장할 수 있다. null도 저장가능하다. (장점임 Null은 직접 다루기 위험하기 때문이다.) null을 직접 다루는 것은 위험하다. Nullpointexception 발생 위험 null 체크를 할 때 if문을 사용해야 해서 코드가 지저분해지게 된다. Optional 객체를 사용해서 위의 null을 직접 다룰 때의 단점을 신경쓰지 않고 null을 사용할 수 있다. [Optional 객체 ..

Java/객체지향 2022.03.28

[객체지향][스트림/Stream] - 스트림의 중간연산(1)

https://youtu.be/G2lPQB42GL8?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [스트림의 중간연산] 스트림 자르기 - skip(), limit() skip(long n) - n개 숫자만큼 건너 뛰기 limit(long maxSize) - maxSize 이후의 요소는 잘라냄 스트림의 요소 걸러내기 - filter(), distinct() filter() - 조건에 맞지 않는 요소 제거 distinct() - 중복 제거 스트림 정렬하기 - sorted() sorted() - 스트림 요소의 정렬(기본 정렬, 지정 정렬) Comparator의 comparing()으로 정렬 기..

Java/객체지향 2022.03.18

[객체지향][스트림/Stream] - 스트림의 연산

https://youtu.be/iY8ta9upajE?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [스트림의 연산] 스트림이 제공하는 기능 - 중간 연산과 최종 연산 중간 연산은 n번 가능 최종 연산은 0~1번만 가능 중간 연산 - 연산 결과가 스트림인 연산으로 반복 적용 가능하다. 최종 연산 - 연산 결과가 스트림이 아닌 연산으로 단 한번만 적용이 가능하다.(스트림의 요소를 소모한다.)

Java/객체지향 2022.03.18

[객체지향][스트림/Stream] - 스트림 만들기

https://youtu.be/AOw4cCVUJC4?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [스트림 만들기 - 컬렉션] 컬렉션으로부터 스트림을 만드는 방법을 알아보자. Collection인터페이스의 stream()으로 컬렉션을 스트림으로 변환 package javajungsuk; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class Java14_7 { public static void main(String[] args) { List list = Arrays.asList(..

Java/객체지향 2022.03.15

[객체지향][스트림/Stream] - 스트림, 스트림의 특징

https://youtu.be/7Kyf4mMjbTQ?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [스트림] 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것이다. 데이터 소스 - 컬렉션, 배열 표준화된 방법 - List, Set, Map 1. 스트림 만들기 --> 2. 중간 연산 --> 3. 최종 연산 [스트림 특징] 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐 변경하지 않는다. 스트림은 Iterator처럼 일회용이다. (필요하다면 다시 스트림을 생성해야 한다.) 최종 연산 전까지 중간연산이 수행되지 않는다. - 지연된 연산 스트림은 작업을 내부 반복으로 처리한다. 스트림의 작..

Java/객체지향 2022.03.15

[객체지향][람다식/Lambda Expression] - 메서드 참조, 생성자의 메서드 참조

https://youtu.be/I55ALQndw50?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [메서드 참조] 하나의 메서드만 호출하는 람다식은 메서드 참조로 더 간단히 할 수 있다. [static 메소드 참조] Integer method(String s) { return Integer.paraseInt(s); } ↓ Function f = (String s) -> Integer.parseInt(s); 그저 Integer.parseInt(String s)만 호출하는 걸 볼수 있다. 이는 그냥 람다식을 사용해서 간단히 할 수 있다. package javajungsuk; import ja..

Java/객체지향 2022.03.12

[객체지향][람다식/Lambda Expression] - Predicate의 결합. CF와 함수형 인터페이스

https://youtu.be/Kk1ZIrVZnqw?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [Predicate의 결합] Predicate는 조건식으로 and(), or(), negate()로 두 Predicate를 하나로 결합 가능하다.(default 메서드) 함수형 인터페이스가 가질 수 있는 메서드 default 메서드 static 메서드 추상 메서드(abstract) 등가 비교를 위한 Predicate의 작성에는 isEqual()을 사용한다.(static메서드) [실습] [andThen] 이때 함수의 출력과 입력이 타입이 같아야 andThen 사용이 가능하다. 이때 새로 만들어..

Java/객체지향 2022.03.09

[객체지향][람다식/Lambda Expression] - java.util.function패키지

https://youtu.be/HPxnDM_FkGc?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [java.util.function패키지] 자주 사용되는 다양함 함수형 인터페이스를 제공한다. 우리가 사용하는 함수의 갯수가 별로 없기 때문에 자바 자체에서 표준으로 만들어 놓은 것을 공통으로 사용하는 구조이다. [매개변수가 2개인 함수형 인터페이스] Bisupplier는 없는 이유가 함수 반환값이 0또는 1이기 때문에 없다. 매개변수 3개를 가진 경우의 함수형 인터페이스는 없지만 우리가 직접 만들어서는 사용이 가능하다. [매개변수의 타입과 반환타입이 일치하는 함수형 인터페이스] [예제] p..

Java/객체지향 2022.03.09