자바 & 스프링

java - Stream

p829911 2021. 11. 30. 20:22

자바의 스트림은 뭔가 연속된 정보 를 처리하는 데 사용한다.

가장 기본적인 것은 배열이고, 컬렉션이다. 컬렉션에는 스트림을 사용할 수 있지만, 배열은 사용할 수 없다.

Integer[] values = { 1, 3, 5 };
List<Integer> list = new ArrayList<Integer>(Arrays.asList(values));

stream을 이용하면

Integer[] values = { 1, 3, 5 };
List<Integer> list = Arrays.stream(values).collect(Collectors.toList());
 

스트림에서 제공하는 연산의 종류

  • filter(pred): 데이터를 조건으로 거를 때 사용
  • map(mapper): 데이터를 특정 데이터로 변환
  • forEach(block): for 루프를 수행하는 것처럼 각각의 항목을 꺼냄
  • flatMap(flat-mapper): 스트림의 데이터를 잘게 쪼개서 새로운 스트림 제공
  • sorted(comparator): 데이터 정렬
  • toArray(array-factory): 배열로 변환
  • any / all / nonMatch(pred): 일치하는 것을 찾음
  • findFirst / Any(pred): 맨 처음이나 순서와 상관 없는 것을 찾음
  • reduce(binop) / reduce(base, binop): 결과를 취합
  • collect(collector): 원하는 타입으로 데이터를 리턴

메소드 참조

:: Method Reference

'자바 & 스프링' 카테고리의 다른 글

PreparedStatement 쿼리를 사용하는 이유  (0) 2021.11.30
JPA allocationSize default 값이 50인 이유  (0) 2021.11.30
java - thread 동기화  (0) 2021.11.30
Java 8 Lambda — 2  (0) 2021.11.30
Java 8 Lambda — 1  (0) 2021.11.30