자바의 스트림은 뭔가 연속된 정보 를 처리하는 데 사용한다.
가장 기본적인 것은 배열이고, 컬렉션이다. 컬렉션에는 스트림을 사용할 수 있지만, 배열은 사용할 수 없다.
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 |