람다식(익명 함수)
메서드를 하나의 식으로 표현한 것이다.함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다.
- 메서드에서 이름과 반환타입을 제거하고 매개변수 선언부와 몸통{} 사이에 '->'를 추가한다.
메서드 참조(method reference)
하나의 메서드만 호출하는 람다식은 '클래스이름::메서드이름' 또는 '참조변수::메서드이름'으로 바꿀 수 있다.
스트림(stream)
데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되었다는 것과 코드의 재사용성이 높아진다는 것이다.
- 스트림은 데이터 소스를 변경하지 않는다.
- 스트림은 일회용이다.
- 스트림은 작업을 내부 반복으로 처리한다.
스트림의 연산
- 중간 연산: 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있음.
- 최종 연산: 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한 번만 가능.
최종 연산이 수행되기 전까지는 중간 연산이 수행되지 않는다는 것이다.