ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Stream
    Programming/Java 2024. 6. 16. 20:49
    728x90

    Stream API

    Java는 객체지향언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다.

    JDK8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API를 제공한다.

    그 중에서 Stream API는 데이터를 추상화하고, 처리하는데 자주 사용되는 함수들을 정의해두었다.

    (데이터 추상화 : 데이터의 종류에 상관 없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미, 재사용 높임)

     

    데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 값 요소

     

    Stream API의 특징

    1. 원본 데이터를 변경하지 않는다.

    원본데이터를 조회하여 원본의 데이터가 아닌 별도의 요소들로 Stream생성한다. 그렇기 때문에 원본의 데이터는 읽기만 할 뿐, 정렬이나 필터링 등의 작업은 별도의 Stream요소들에서 처리가 된다.

     

    2. Stream은 일회용이다.

    한번 사용이 끝나면 재상용이 불가능하다.

    Stream이 또 필요한 경우에는 Stream을 다시 생성해주어야 한다. 닫힌 Stream을 다시 사용한다면 IllegalStateException 이 발생한다.

     

    3. 내부 반복으로 작업을 처리한다.

    기본에는 반복문을 사용하기 위해 for, while과 같은 문법을 사용해야 했지만, stream에서는 그러한 반복 문법을 메소드 내부에 숨기고 있기 때문에, 보다 간결한 코드의 작성이 가능하다.

     

    Stream API의 연산 종류

    1. 생성하기

    2. 가공하기

    3. 결과만들기

     

    EX

    	String[] strings = {"123","456","789"};
            List<String> strList = Arrays.asList(strings);
    
            List<Integer> list = strList.stream()
                    .map(str -> Integer.valueOf(str) )
                    .collect(Collectors.toList());
    
            list.stream().forEach(s -> System.out.println(s));

    123
    456
    789

     

     

     

    참고

    https://mangkyu.tistory.com/112

     

     

     

     

     

     

    728x90

    댓글

© 2022. code-space ALL RIGHTS RESERVED.