정의
자바 8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 하는 반복자
(iterator와 비슷)
사용 예시 - 기본
// String 배열
String[] strArray = {'국어', '수학', '영어'};
Stream<String> strStream = Arrays.stream(strArray);
strStream.forEach(a -> System.out.print(a + ","));
System.out.println();
// int 배열
int[] intArray = {1, 2, 3, 4, 5};
IntStream intStream = Arrays.stream(intArray);
intStream.forEach(a -> System.out.print(a + ","));
System.out.println();
- 결과1, 2, 3, 4, 5,
- 국어, 수학, 영어,
- String, Int 이외에도 임의의 클래스로도 사용 가능하다.
사용 예시 - 활용 (Programmers Level1. 두 개 뽑아서 더하기)
Integer형 집합 자료구조에서 하나씩 꺼내 int로 바꾸면서 배열로 만들기 위해 stream() 사용.
public static int[] solution(int[] numbers) {
int n = numbers.length;
TreeSet<Integer> treeSet = new TreeSet<>();
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
treeSet.add(numbers[i] + numbers[j]);
}
}
return treeSet.stream().mapToInt(Integer::intValue).toArray();
}
참고 - 메소드 참조 :: (더블콜론)
A :: B
A 가 갖고 있는 B 메소드를 참조한다.
References.
medium.com/@inhyuck/java-8%EC%97%90-%EC%B6%94%EA%B0%80%EB%90%9C-%EA%B2%83%EB%93%A4-8c66023cbbae
coding-factory.tistory.com/574
'Java' 카테고리의 다른 글
JWT 뿌시기 (세션방식과 비교/정의/구조/검증방법/장단점) (feat.Refresh 토큰) (2) | 2022.11.06 |
---|---|
정규식 (0) | 2021.04.21 |