package practice.stream;
import java.util.Arrays;
public class IntArrayStreamTest {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
for(int num : arr){
System.out.println(num);
}
Arrays.stream(arr).filter(x-> x>3).forEach(n-> System.out.println(n));
IntStream is = Arrays.stream(arr);
is.forEach();
int sum = Arrays.stream(arr).sum();
System.out.println(sum);
}
}
- IntStream의 인터페이스를 선언하고 Arrays.stream(컬렉션 배열 매개변수); 를 대입받는다
- 업캐스팅
- 한번 더 쓸 수 없음
- 인터페이스로 선언하는 이유(IntStream) -> 자식클래스를 갈아끼우기 편함(내 생각 - 다형성 실현하기 위함)
- 배열 , 컬렉션 대상으로 연산을 수행한다.
- lambda식에서 익명내부 클래스가 생성된다 -> Stream은 lambda식을 쓴다. -> stream은 익명 내부 클래스를 생성한다.
List<String> sList = new ArrayList<String>();
sList.add("1");
sList.add("2");
sList.add("3");
Stream<String> stream = sList.stream();
stream.forEach(System.out::println);
- stream은 기존의 방식으로도 선언하고 사용할 수 있다.
IntStream is = Arrays.stream(arr);
is.forEach();