728x90

stream 5

람다식 중간연산 정리 (map, filter, reduce, collect)

stream 인터페이스를 사용하여 람다식을 기존 JAVA코드(명령형 스타일)와 비교 아래에 소개하는 4개의 메서드를 간단히 설명하면 map()은 엘리먼트 변경, filter()는 엘리먼트 선택, reduce(), collect()는 엘리먼트를 하나로 리턴 이다. 1. map() map 메서드는 입력 컬렉션을 출력 컬렉션으로 매핑하거나 변경할때 유용하다. 예제 코드 list의 엘리먼트 값을 모두 대문자로 변경하여 출력. final List names = Arrays.asList("Sehoon", "Songwoo", "Chan", "Youngsuk", "Dajung"); //java 7 System.out.println("java 7"); for(String name : names) { System.out...

JAVA 2022.10.19

map() 과 flatMap() 의 차이

.map() .map()은 단일 스트림의 원소를 매핑시킨 후 매핑시킨 값을 다시 스트림으로 반환하는 중간 연산을 담당한다. 필터가 조건을 충족시키는 새로운 스트림을 생선한다면, Map은 각각의 아이템을 변경하여 새로운 컨텐츠를 생성하는 기능이다. List list = Arrays.asList( new Person(20,"kim"), new Person(21,"moon"), new Person(22,"sub"), new Person(23,"park") ); list.stream().map(Person::getName) .forEach(System.out::println); kim moon sub park .flatMap() flatMap() 은 여러개의 스트림을 한개의 스트림으로 합쳐준다. 복잡한 스트림을..

JAVA 2022.09.22

JAVA stream filter 정리

Filter 스트림내 요소에 대해서 필터링하는 작업 준비하기 java stream을 사용하는데 아직 미숙한것 같아서 여러가지 예제를 사용해보며 연습해보자. sample data (Human) 번호 이름 가진돈 생일 1 jojae 2900 1991-02-26 2 haha 1000 2003-03-02 3 arabia 30000 2001-04-06 4 cici 150 1982-05-16 5 zzang 40000 1910-06-26 6 ssu 200000 2012-07-11 7 kuku 150 1991-02-27 public class Human { private Long idx; private String name; private Integer money; private LocalDate birth; } 기본..

JAVA 2022.09.01

컬렉션 엔티티 조회 + 페이징을 함께 해결 (feat. default_batch_fetch_size)

먼저 ToOne(OneToOne, ManyToOne) 관계를 모두 페치조인 한다. ToOne 관계는 row수를 증가시키지 않으므로 페이징 쿼리에 영향을 주지 않는다. 컬렉션은 지연 로딩으로 조회한다. 지연 로딩 성능 최적화를 위해 hibernate.default_batch_fetch_size , @BatchSize 를 적용한다. hibernate.default_batch_fetch_size: 글로벌 설정 - 이 옵션을 사용하면 컬렉션이나, 프록시 객체를 한꺼번에 설정한 size 만큼 IN 쿼리로 조회한다. @Repository public class OrderRepository { public List findAllWithMemberDelivery(int offset, int limit) { return..

JPA 2022.06.16

스트림의 기본 및 간단한 특징

(Java 8이상)스트림(Stream) 이란? 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것이다. 스트림이 제공하는 기능 - 중간 연산과 최종 연산 중간 연산 - 연산결과가 스트림인 연산. 반복적으로 적용 가능하다. 최종 연산 - 연산결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 한번만 적용가능하다. 스트림의 구조 스트림의 특징 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐 변경하지 않는다. 스트림은 Iterator처럼 일회용이다. 최종 연산 전까지 중간연산이 수행되지 않는다. - 지연된 연산 List list = Arrays.asList(4, 2, 5, 1, 3); List sortedList = list.stream().sorted() .collect(Collectors.toLis..

JAVA 2022.02.14
728x90