자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고 스트림이라는 흐름을 통해서 다룬다.
스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 쉽게 말해 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며 중간 매개자 역할을 한다. Java8 부터 지원되지 시작한 기능이다.
- 내부반복 (internal iterator)를 통해 작업을 수행한다.
- 재사용이 가능한 컬렉션과는 달리 단 한 번만 사용할 수있다.
- 원본 데이터를 변경하지 않는다.
- 스트림의 연산은 필터-맵 기반의 API 를 사용하여 지연 연산을 통해 성능을 최적화한다.
기본적 스트림 생성
List<String> list = new Arrays.asList("a","b"); Stream<String> stream = list.stream();
filter() 메서드 사용
"java" 가 포함된 요소 찾기
List<String> list = Arrays.asList("This is a java book", "Lambda Expressions", "Java8 supports lambda expressions"); list.stream().filter(a->a.contains("java")).foreach(a->a.System.out.println(a);
추가----------------------------------------------------------