Java – Stream

By | 2022년 11월 10일
Table of Contents

Java – Stream

Java Stream의 filter(), map(), flatMap() 사용 방법을 정리합니다.

데이타 준비

Map<String, String> map = new HashMap<>();
map.put("key01", "value01");
map.put("key02", "value02");
map.put("key03", "value03");
map.put("key04", "value04");
map.put("key05", "value05");

filter()

조건에 부합하는 데이타를 추출합니다.

Optional<Map.Entry<String, String>> entry = map
        .entrySet()
        .stream()
        .filter(e -> e.getKey().equals("key02"))
        .findFirst();

entry.ifPresent(stringStringEntry ->
        System.out.println("[key]:" + stringStringEntry.getKey() + ", [value]:" + stringStringEntry.getValue())
);

map()

각 데이타에 함수를 적용합니다.

Optional<String> entry = map
        .entrySet()
        .stream()
        .filter(e -> e.getKey().startsWith("key"))
        .map(e -> e.getValue())
        .findFirst();

entry.ifPresent(value ->
        System.out.println("[value]:" + value)
);

flatMap()

2차원 배열을 1차원 배열로 변환해 줍니다.

String[][] arrays = new String[][]{ {"a1", "a2"}, {"b1", "b2"}, {"c1", "c2", "c3"} };

Arrays
        .stream(arrays)
        .flatMap(Arrays::stream)
        .filter(s-> s.startsWith("a"))
        .map(String::toUpperCase).forEach(System.out::println);

답글 남기기