Yet Never Lose Faith

- Good to Great , Jim Collins

How To Preprocess Image Data 자세히보기

Java

stream()

Kellyyyy 2021. 4. 24. 22:20

정의

자바 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

 

Java 8에 추가된 것들

Java 8에 새롭게 추가된 문법들 정리 (from 자바의 신)

medium.com

coding-factory.tistory.com/574

 

[Java] 자바 스트림(Stream) 사용법 & 예제

스트림(Stream)이란? 스트림은 자바8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자입니다. Iterator와 비슷한 역할을 하지만 람다식으로 요소 처리

coding-factory.tistory.com