Java

[Java/자바] stream, map, collect

꿈꾸는야오옹 2023. 2. 6. 18:43

Stream

자바의 Stream은 java8에 추가된 기능으로 컬렉션에 저장된 요소들을 람다식으로 처리 할 수 있게 하는 코드패턴이다.  for문과 if문을 사용하지 않고도 간결하게 코드를 변경 할 수 있다.

 

  • 원본 데이터를 읽는데, 원본데이터 변경을 하지 않는다.
  • 결과를 컬레션이나 배열에 담아 반환 할수있다.

Map()

map() 메서드는 값을 변환해주는 람다를 인자로 받아, 조건에 맞게 새로운 데이터를 반환 할 때 사용된다.

 


Collect()

Stream 데이터를 원하는 자료형으로 변환 해준다. 

 

예를들어, collect(Collectors.toList()) 는 List형으로 자료형을 변환해준다. 아래는 예시 코드이다.

 

 

@Override
public void findAll(Model model) {
    List<GoodsListDTO> result=gRepository.findAll().stream()
            .map(GoodsListDTO::new).collect(Collectors.toList());

    model.addAttribute("list", result);
}

 

상품 리스트를 불러오는 메소드인데 여기서 Stream을 사용했다.