[Java] Stream API 사용 방법

6858 단어 spring-bootJava
개시하다
선배 엔지니어로부터 조언을 받았고 스트림 API에 대한 보완을 했다.
듣기에는 좀 어렵지만 의외로 간단하기 때문에 비망록으로 정리할 수도 있다.
Stream API는 무엇입니까?
Java8에서 가져온 정렬과 Collection 등을 처리하여 수치 통계와 데이터 처리 등을 할 수 있는 편리한 API를 말한다.
단지 이렇게 하면 인상이 그리 강렬하지 않습니다. for문에 기술된 처리를 간단하게 묘사할 수 있는 편리한 기능만 기억하면 OK!
for 문과 Stream API 비교
이번에는 for문과 Stream API를 이용하여 1부터 5까지의 정수에서 짝수를 얻는 처리를 실시한다.
import java.util.Arrays;
import java.util.List;

public class StreamTest {
    public static void main(String[] args) {

        // 1から5までの整数
        List<Integer> numList = Arrays.asList(1, 2, 3, 4, 5);

        // for文を利用した処理
        for (Integer num : numList) {
            if (num % 2 == 0) {
                System.out.println(num);
            }
        }

        // Stream APIを利用した処理
        numList.stream() // Streamを生成
            .filter(i -> i % 2 == 0)  // numListの中から該当する値のみを取得
            .forEach(i -> System.out.println(i)); // 上記で該当した値のみを出力する

    }
}
Stream API 사용의 이점
◇가독성 높은 코드 설치 가능
위에서 말한 바와 같이 for문에서 어떻게 처리되었는지 한눈에 알 수 없다.
한편, 스트림 API를 이용한 처리는 스트림이 유지하는 방법으로 처리를 선언한 뒤 조건을 기술했기 때문에 어떤 처리를 하는지 쉽게 알 수 있는 장점이 있다.
또 코드의 양도 줄어들 수 있기 때문에 읽을 수 있는 코드를 사용하는 것이 좋다.
그 외에 또 다른 좋은 점이 있는 것 같지만, 내가 느끼는 좋은 점은 이것밖에 없기 때문에 나는 사랑하지 않는다...
Stream API 설치 방법

1단계:Stream 생성
정렬 및 리스트stream()에서 Stream을 생성합니다.
Stream을 생성하여 데이터를 변환하고 가공할 수 있습니다.
// 上記の例のnumListを参考にstreamを生成
numList.stream()
2단계: 중간 작업
첫 번째 단계에서 생성된 Stream에 대한 데이터 변환 및 가공
중간 조작에서 데이터 변환과 가공을 하는 여러 가지 방법을 준비했다.
중간 조작은 여러 개를 기술할 수 있다.또한 생략할 수도 있다.
// 中間操作のメソッドを一部抜粋

// sortedメソッド
.sorted() // 昇順にする
.sorted(Comparator.reverseOrder()) // 降順にする

// filterメソッド
.filter(i -> i % 2 == 0) // 条件に合ったデータのみを取得する
                                                 // iは一時変数のためnumでも好きなものでOK

// limitメソッド
.limit(3) // 引数の値分データを取得する(今回の場合3つ分のデータを取得する)
3단계: 터미널 작업
조작 2단계 가공의 결과.
중간 조작과 같은 여러 가지 방법을 준비했다.
터미널 작업은 생략할 수 없습니다.
// 終端操作のメソッドを一部抜粋

// forEachメソッド
.forEach(i -> System.out.println(i)); // 拡張for文同様、要素を繰り返し出力する

// collectメソッド
.collect(Collectors.toList()); // データを扱いやすいStreamの形に変換していたため、元のListに戻す
최후
스트림 API를 실제로 사용해 코드 양을 줄였을 뿐 아니라 한눈에 이해할 수 있는 코드까지 감동시켰다.
여러분의 참고가 될 수 있다면 저는 매우 기쁠 것입니다.
참고 자료
https://www.casleyconsulting.co.jp/blog/engineer/191/
https://qiita.com/takumi-n/items/369dd3fcb9ccb8fcfa44

좋은 웹페이지 즐겨찾기