Stream 2

스트림의 메서드

스트림에 대해 공부하던중 몇몇 유용해보이는 메서드들이 있어 이에대해 포스팅하게 됬다. orElse() List list = Arrays.asList(); // 컴파일 오류 발생 Double value = list.stream() .mapToDouble((a)->a) .average(); // 런타임 오류 발생 Double value = list.stream() .mapToDouble((a)->a) .average() .getAsDouble(); 위와 같은 코드를 작성하면 컴파일 에러가 발생한다. 이유는 average()를 이용해 평균값을 구할때 입력값이 아예 없으면 즉 빈 리스트를 불러와 평균값을 구할수가 없기 때문이다. 해당 리스트에 숫자형 데이터 "0"이라도 존재 한다면 "0"을 리턴하지만 빈 리스트..

Java/Java 2023.03.11

스트림 (Stream)

스트림 스트림(Stream)은 배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 스트림을 사용하면 List, Set, Map, 배열 등 다양한 데이터 소스로부터 스트림을 만들 수 있고, 이를 표준화된 방법으로 다룰 수 있으며 스트림은 제공하는 다양한 메서드들을 이용하여 데이터 소스를 다룰수 있다. 어떠한 집합의 데이터들에 접근하는데 반복문으로 처리가 가능하다. 하지만 for문이나 Itorator를 사용할경우 코드가 길고 가독성이 떨어질수 있으나 스트림을 통해 구현한다면 코드를 좀더 직관적으로 작성이 가능하다. 선언형과 명령형 프로그래밍 비교 // List에 있는 숫자들 중에서 4보다 큰 짝수의 합계 구하기 // ------------------------반복문 ..

Java/Java 2023.03.10