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 |
Tags
- 분석 작업
- 2010
- 년말
- java
- bootstrap
- #정규표현식
- #Microservice
- Spring Boot
- 감사
- 토익
- 방법론
- Lambda
- 평가인증
- #단축키
- WebJar
- 프로젝트 시작
- #화면캡쳐 #macOS
- #Gradle Multi project with IntelliJ
- docker #docker tutorial
- jv
- Microservices
Archives
- Today
- Total
사랑해 마니마니
Java Lambda 식에서 자주 사용하는 스트림 명령들(1) 본문
스트림 사용해 보기
List<String> strList = Arrays.asList("a", "b", "c");
long count = strList.stream()
.count();
filter 사용해 보기
1. filter 자체는 lazy 방식으로 동작함 그래서 꼭 eager 함수와 함께 안쓰면 runtime에서 실행되지 않음.
strList.stream()
.filter(s -> System.out.println(s)); // lazy 수행 방식으로 동작하지 않음
strList.stream()
.filter(s -> System.out.println(s))
.count(); // count와 같은 eager 함수가 따라 붙어야 동작함.
2. 그런데 위 코드는 ide에서 실행해 보면 동작하지 않음
왜냐하면 filter는 boolean을 return하는 함수이기 때문.
strList.stream()
.filter(s -> {
System.out.println(s)
return true;
})
.count(); // 이제 동작함
스트림들을 모아서 리스트로 만들자
Stream.of("a","b","c")
.collect(Collectors.toList());
map 사용해 보기
1. map은 1:1로 변환(요소 하나를 변환된 요소 하나로 변환) 하는 함수임.
A -> A'
B -> B'
C -> C'
2. 필터랑 같이 쓰면 좋음
import static java.util.stream.Collectors.toList;
List<Integer> collected = Stream.of(1,2,3,4,5,6)
.filter(s -> s > 3)
.collect(toList()); // collect도 eager 함수로 바로 실행됨
flatmap 사용해 보기
flatmap은 stream을 연결하는 함수(같은 느낌임).
책 설명은 flatMap 메소드는 주어진 값을 스트림으로 변환하고, stream을 모두 통합한다.
List<Integer> collected = Stream.of(asList(1,2), asList(4,5), asList(6,7)) // 오호 이런 것도 됨
.flatMap(i -> i.stream()) // int i = 0; i.stream()은 안되지만...
.collect(toList()); // 나중에 toSet() 이런 것도 나옴.
max와 min
max, min은 eager함수 같은데 lazy함수 임, get()함수를 불러야 실행됨.
int x = Stream.of(1,2,10, -10, 100)
.max(Comparator.comparing(Integer::valueOf)) // 아래와 같은 결과를 만들어 냄.
.max(Integer::compareTo) //
.get();
'java' 카테고리의 다른 글
Java 정규 표현식 (0) | 2019.05.01 |
---|---|
정규표현식(작성 중) (0) | 2019.04.28 |
Comparator (0) | 2018.01.29 |
java array를 list로, list를 array로 바꾸기 (1) | 2018.01.29 |
Comments