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 |
Tags
- 반려견 더위
- 강아지 종류
- 반려견 사료등급
- 홀리스틱 유기농
- 강아지 유기농
- 반려견 종류
- 강아지 더위
- 강아지
- 강아지 홀리스틱
- 반려견 홀리스틱
- 티켓팅매크로
- 반려견 유기농 사료
- 부산 맛집
- 자동화봇
- 강아지 열사병
- 반려견 유기농
- 닥스훈트
- 반려견 열사병
- 쿠팡메크로
- 샤로수길 맛집
- 강아지 유기농 사료
- 동인천 맛집
- 서울대입구 맛집
- 신포동 맛집
- 샤로수길 데이트
- 쿠팡매크로
- 국비지원 예습
- 티켓팅메크로
- 반려견
- 강아지종류
Archives
- Today
- Total
심심한잉여의 잡동사니
[JAVA] 스트림(Stream) 정리 본문
반응형
스트림이란
자바 8버전에서부터 추가 된 람다를 활용한 기술
자바8 이전에는 배열 또는 컬렉션을 다루는 방법으로 for, foreach를 사용하며 요소 하나씩다루는 방법을 사용했다.
간단한 경우라면 크게 상관 없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메소드를 나눌 경우 루프를 여러번 도는 경우가 발생한다.
스트림은 '흐름'이라는 뜻으로 데이터의 흐름을 뜻한다. 배열 또는 컬렉션 인스턴스에 함수 여러개를 조합해서 원하는 결과를 필터링 하고 가공된 결과를 얻을 수 있다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있다.
즉, 배열과 컬렉션을 함수형으로 처리할 수 있다는 것이 특징이다.
병렬처리(멀티 쓰레딩)이 가능하다는 장점이 있다.
하나의 작업을 둘 이상의 작업으로 잘게 나눠서 동시에 진행하는 것을 병렬 처리라 하는데 즉 쓰레드를 이용하여 많은 요소를 처리할 수 있다는 뜻이다.
스트림의 사용방법은
스트림 인스턴스 생성 -> 필터링, 맵핑 등 원하는 결과로 가공 -> 결과로 리턴받기
해당 과정을 통해 스트림을 사용할 수 있다.
예제로 보면
String[] arr = new String[]{"a","b","c"};
Stream<String> stream = Arrays.stream(arr);
Stream<String> stramOfArrayPart = Arrays.stream(arr,1,3);
// 컬렉션들은 기본적으로 stream라는 디폴트 메소드가 내장되어 있어 사용하면 됨
List<String> list = Arrays.asList(arr);
Stream<String> stream2 = list.stream();
Stream<String> stream2 = list.parallelStream(); // 병렬 처리 스트림
위 코드와 같이 스트림(Stream)을 선언할 수 있다.
filter()(필터)
stream.filter(str -> str.contains("a")); // ["a"]
map()(요소 가공)
stream.map(String::toUpperCase); // [A,B,C]
반응형
'코딩일기 > Java' 카테고리의 다른 글
[JAVA/셀레니움]JAVA로 셀레니움 다루기 (0) | 2023.08.22 |
---|---|
[JAVA/크롤링]Jsoup을 이용한 Java 크롤링 (0) | 2022.11.15 |
[Java] 자바 컬렉션(Collection) 구조 정리 (0) | 2022.05.02 |
[JAVA] 어노테이션(Anotation) (0) | 2022.04.12 |
[Java] 리플렉션 Class 클래스 (0) | 2022.04.11 |