[공공데이터 개발과정] 0411 자바

송경근·2023년 5월 14일
0

자바 배우기

목록 보기
17/18
post-thumbnail

스트림

: 자바 컬렉션을 처리하는 방법 중 하나 

1. 사용방법

-이터레이터는 컬렉션의 요소에 대한 반복자 제공
-스트림은 데이터의 흐름을 나타내는 개념
 스트림을 사용하여 요소를 처리하고 
필터링, 매핑, 정렬, 그룹화 및 통계 등 다양한 작업 수행
(중간 연산 -> 최종연산)

2. 데이터 처리

-이터레이터 : 명시적인 루프와 조건문을 사용하여 데이터 처리
-스트림 : 내부적으로 반복 작업 처리, 요소 처리하는 람다식 사용
"데이터를 병렬처리 가능" 데이터 처리속도가 빨라짐

3. 컬렉션 종속성

- 이터레이터 : 컬렉션에 종속적(이터레이터를 사용하기 위해 컬렉션 생성)
- 스트림 : 독립적, 배열, 파일, 디렉토리 등 다양한 데이터 소스에 사용 가능

4. 동작 방식

- 이터레이터 : next() 메서드를 호출할 때마다 다음 요소 반환. 직접적으로 사용
->컬렉션 상태가 바뀐다면 예외 발생의 위험성 존재
- 스트림 : 원본의 상태를 변경하지 않음. 간접적으로 사용함

	

스트림 종류

스트림 파이프라인

스트림연산의 결과가 stream 타입이면 연속적으로 호출할 수 있다.
스트림 연산의 연속 호출은 여러 개의 스트림이 연결되어 스트림 파이프라인 형성
중간연산은 몇 개이든 상관없다

느긋한 연산과 조급한 연산

느긋한 연산	중간연산. 
	최종연산이 데이터 소스에게 원소를 요구할 때 까지 
	아무 연산도 수행하지않음.
조급한 연산	최종연산
	
	

스트림 연산과 옵션 타입

모든 자료형에 대한 null 값을 사용하기 위해서 쓴다

>그래서 사실 별로 안씀.

옵셔널 타입의 특징

값이 있을 수도 있고 없을 수 도 있는 객체를 나타내기 위해 사용
>null

1. NullPointException 방지
- 객체가 null인 경우에도 예외 발생 x
2. 코드 가독성 향상
- 값이 없는 경우에 대한 처리를 명시적으로! 
empty
- 메서드사이에 체이닝 가능
	○ 옵셔널 사용하면 결과값도 옵셔널 객체로 나옴
	○ 형변환을 하지않아도 옵셔널을 받는 메소드끼리 유기적으로 연결 가능

:: 메소드 참조(reference) 연산자

- 람다식 더 간결하게 표현하는 방법중 하나
참조할 메소드 이름과 메소드를 호출할 객체(참조)를 지정하여 
메소드 접근을 가능하게 해줌
Util :: print 
s -> Util.print(s)
	

스트림 활용

필터링 

매핑

map()

: 연결 하여 새로운 스트림 생성
하나의 통에 연결해주는것
스트림의 각 요소에 대해 함수 적용후 그 결과를 새로운 스트림으로 반환

flatmap() :

스트림의 각 요소에 대한 함수를 적용하고 하나의 스트림으로 병합

리듀싱 연산

reduce(): 스트림의 모든 요소를 하나의 값으로 줄이는 작업

count() :

원소 개수 반환

입출력 처리

대부분의 프로그램 자료를 입력받는 기능과
저장하거나 쓰는 등의 출력 기능을 제공
음악이나 동영상 파일 실행, 채팅, SNS, 사진공유

출력 : 모니터, 스피커
입력 : 키보드, 마우스

스트림 :

데이터(자료)의 흐름
자바에서 제공하는 독립적이고 효율적인 입출력 기능


왜 효율적인가

다른 언어는 입출력 장치에 따라 코드를 다르게 작성해야하는경우가 있음.
입출력 장치 종류와 관계없이 
모든 입출력을 처리가 가능
->스트림으로!


스트림은 단방향으로 자료가 이동.
입력과 출력을 동시에 진행 불가능

profile
개발자가 되려는 학생입니다

0개의 댓글