Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Algorithm
- coding test
- datastructure
- C programming
- 윤성우 열혈자료구조
- 혼자 공부하는 C언어
- 윤성우의 열혈 자료구조
- C 언어 코딩 도장
- 메모리구조
- s
- buffer
- insertion sort
- 이스케이프 문자
- Serialization
- stream
- JSON
- 알기쉬운 알고리즘
- 이것이 자바다
- Stack
- list 컬렉션
- Graph
- R
- Selection Sorting
Archives
- Today
- Total
Engineering Note
[Java] Stream, map() 본문
Stream
- Java8부터 도입된 컬렉션 및 배열의 요소를 반복처리 하기 위한 기술
- for문과 Iterator와 비교해 가독성이 좋고, 재사용성이 좋다.
- Stream을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다.
Stream은 중간 연산과 최종 연산이 있다.
중간 연산은 연산 결과가 스트림인 연산, 스트림에 연속해서 중간 연산을 할 수 있다. 최종 연산은 연산 결과가 스트림이 아닌 연산이다. 스트림의 요소를 소모하므로 단 한번만 사용할 수 있다.
중간 연산 예시 : map(), filter()
최종 연산 예시 : forEach(), count()
변환 - map()
- 스트림의 요소에 저장된 값 중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할 때가 있다. 이 때 사용하는 것이 바로 map()이다.
선언부
Stream<R> map(Function<? super T, ? extends R> mapper)
- 매개변수로 T타입을 R타입으로 변환해서 반환하는 함수를 지정해야한다.
예시, File의 스트림에서 파일의 이름만 뽑아서 출력하는 코드
Stream<File> fileStream = Stream.of(new File("Ex1.java"), new File("Ex1"), new File("Ex1.bak"), new File("Ex2.java"), new File("Ex1.txt");
// map()으로 Stream<File>을 Stream<String>으로 변환
Stream<String> filenameStream = fileStream.map(File::getName);
filenameStream.forEach(System.out::println);
map()은 중간 연산이다. 연산 결과를 String을 요소로 하는 스트림이다. map()으로 Stream<File>을 Stream<String>으로 변환했다고 볼 수 있다.
'Programming Language > Java' 카테고리의 다른 글
| [Java] Stream API 실전 예제(Entity/DTO 변환 과정: forEach -> map 리팩토링) (0) | 2025.10.04 |
|---|---|
| [Java] Lambda expression (0) | 2025.08.27 |
| [Java] Thread 구현과 실행 (1) | 2025.08.02 |
| [Java] main thread 실행 흐름과 call stack, stack frame, main thread 개념 (1) | 2025.08.02 |
| [Java] Interface와 DI(Dependency Injection)를 통해 객체간 결합 낮추기, Interface를 사용하는 이유 (4) | 2025.08.01 |
Comments
