스트림
- 데이터 소스를 변경하지 않는다.
- 일회용이다
- 작업을 내부 반복으로 처리한다.
- 데이터의 연속이다
- Collections.stream() 을 제공 (Java8)
- 스트림 연산
- 중간연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있음
- 최종 연산 : 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한번만 가능
stream.distinct().limit(5).sorted().forEach(System.out::println)
중간 연산 중간 연산 중간 연산 최종 연산 - 스트림의 최종 연산
- forEach() : 스트림의 요소를 출력하는 용도
- findFirst() : 스트림의 요소 중에서 조건에 일치하는 첫 번째 것을 반환, 주로 filter()와 함께 사용되어 조건에 맞는 스트림의 요소가 있는지 확인
- findAny() : 병렬스트림일때 사용
// 주사위 100번 던져서 6이 나올 확률을 구하시오
Random r = new Random();
Stream.generate(() -> r.nextInt(6) + 1)
.limit(10)
.forEach(System.out::println);
int[] arr = Stream.generate(() -> r.nextInt(6) + 1)
.distinct()
.sorted(Comparator.reverseOrder())
.limit(10)
.mapToInt(i + 1)
.toArray();
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] UML (0) | 2024.07.21 |
---|---|
[Java] Optional / Assertion (0) | 2024.04.03 |
[Java] Optional (0) | 2024.03.30 |
[Java] 메서드 참조 (0) | 2024.03.30 |
[Java] OOP (0) | 2024.03.30 |