일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬 웹크롤링
- 서평
- 에러
- 기록하는 동구
- 한줄평
- SpringBoot
- 책
- MySQL
- JavaScript
- 자바스크립트
- spring
- 줄거리
- 클라우드 서비스
- 깃
- Mapper
- git push
- 데이메이커
- 자바 파일업로드
- 클라우드 서비스 특징
- java
- 오류
- missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
- Swift
- 콜미동구
- 독후감
- 동구
- Xcode
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
- Mac
- git
- Today
- Total
인생은 속도가 아니라 방향이다
[Java] Stream 클래스를 알아보자 ① 본문
안녕하세요, 동구쨩입니다. 이번엔 Stream클래스를 알아보겠습니다.
자바8에서 추가한 스트림(Streams)는 람다를 활용할 수 있는 기술중 하나입니다. 자바 8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 foreach 문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이였습니다. 간단한 경우라면 상관없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메소드를 나눌경우 루프를 여러번 도는 경우가 발생합니다.
스트림은 '데이터의 흐름' 입니다. 배열 또는 컬렉션 인스턴스에 여러개를 조합해서 원하는 결과를 필터링 하고 가공된 결과를 얻을 수 있습니다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할수있습니다.
또 하나의 장점은 간단하게 병렬처리(multi-threading)가 가능하다는 점입니다. 하나의 작업을 둘 이상의 작업으로 잘게 나눠서 동시에 진행하는 것을 병렬 처리(parallel processing)라고 합니다. 즉 쓰레드를 이용해 많은 요소들을 빠르게 처리할수 있습니다.
여기까지가 Stream에관한 간단한 설명이고 이어서 포스팅할 내용들은 크게 세가지 입니다.
- 스트림 생성
- 가공하기
- 결과만들기
이 세가지가 한 스트림안에서 이루어지는데, 쉽게 생각해서 하나의 파이프라인이 쭉이어지는데 그 중간마다 변환시켜주는 장치들이 있다고 생각하고 결과물이 쏟아져나온다고 생각하면 쉽습니다.
다음 포스팅에서 뵙겠습니다.
References :
https://futurecreator.github.io/2018/08/26/java-8-streams/
'백엔드(Back-end) > Java' 카테고리의 다른 글
[JAVA] Lombok @Getter, @Setter, @EqualsAndHashCode, @Data 자주쓰이는 어노테이션들 (1) | 2020.10.20 |
---|---|
[Java] Ajax & FormData로 파일 업로드하기② (0) | 2020.02.04 |
[Java] Ajax & FormData로 서버에 파일 업로드하기① (0) | 2020.02.03 |
[Java] Stream 클래스를 알아보자 ② (0) | 2020.01.30 |
[Java]-JDK 다운로드 및 환경변수 설정 (0) | 2020.01.25 |