본문 바로가기
슬기로운 자바 개발자 생활/Java more

java8 Stream 02 map과 forEach 활용

by 슬기로운 동네 형 2023. 6. 1.
반응형

 

java8 Stream 02 map과 forEach 활용

 stream 방식으로 코딩을 하면 꽤 좋은 점이 코드가 눈에 띄게 줄어든다.

 처음 자바8을 접했을 때는 익숙치 않아 거부감도 있었지만 일을 하면서 적용을 해보니 확실히 복잡한 프로그램을 만들 수록 소스 코드가 줄어든다.

 누군가에에 도움을 주기 위한 포스팅은 아니고 내가 일하면서 자주 보려 한다.

 forEach 끝에 체이닝으로 collect를 넣었다가 한참 헤멨다.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Edu08_Map02 {
    public static void main(String[] args) {
        List<Map<String, Object>> mapList = new ArrayList<>();
        for(int i=0;i < 10 ;i++){
            Map<String, Object> m = new HashMap<>();
            m.put("name","age"+i);
            m.put("workingNumber","100"+i);
            mapList.add(m);
        }

        //원래의 데이터에 어떤 정보를 키값으로 매핑해서 추가해본다.
        List<Map<String, Object>> list = mapList.stream()
                .map(map-> {
                    map.put("newVale","안녕하세요");
                    //어떤 작업을 수행해 map에 새로운 정보나 키를 만들 수 있다.
                    return map;
                })
                .collect(Collectors.toList());

        //단순히 데이터를 출력해본다. forEach 안에서 어떤 데이터를 인설트하는 작업이나 메일을 보내느 작업으로 활용
        mapList.stream().forEach(System.out::println);
        
        //맵의 경우 아래 처럼 값을 확인할 수도 있다.
        mapList.forEach( map -> System.out.println(map.get("name")));
    }
}
반응형

댓글