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);