-
day29 - JAVA (자바, 메소드 참조, 스트림, 병렬처리)KIC/JAVA 2021. 7. 25. 01:11반응형
[정적 메소드와 인스턴스 메소드 참조]
-> 클래스 메소드 참조
클래스 :: 메소드
-> 인스턴스 메소드 참조
참조변수 :: 메소드
[매개변수 메소드 참조]
- (a, b) -> {a.instanceMethod(b); }
==> 클래스 :: instanceMethod
[생성자 참조]
(a, b) -> {return new 클래스(a, b);} ==>클래스 :: new
[스트림]
-> 자바 8부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해준다.
-> 람다식(함수적 - 스타일)으로 처리할 수 있도록 해주는 반복자
[반복자 스트림]
[스트림의 특징]
-> iterator 와 비슷한 역할을 하는 반복자
-> 람다식으로 요소 처리 코드를 제공
대부분의 요소처리 메소드는 함수적 인터페이스 매개 타입을 가지고 있다.
-> 내부 반복자를 사용하므로 병령 처리가 쉽다
-> 컬렉션 내부에서 요소들을 반복 시킨다.
-> 개발자는 요소당 처리 해야 할 코드만 제공
[스트림 종류]
-> BaseStream: 모든 스트림에서 사용 가능한 공통 메소드 (직접 사용x)
-> Stream - 객체 요소 처리
-> IntStream, LongStream, DoubleStream은 각각 기본 타입은 int, long, double 요소 처리
[스트림 인터페이스의 구현 객체]
-> 주로 컬렉션과 배열에서 얻음
-> 소스로부터 스트림 구현 객체 얻는 경우
[파일로부터 스트림 얻기]
-> File의 정적 메소드인 lines() 와 BufferedReader 의 lines(0 메소드 이용
->문자 파일 내용을 스트림 통해 행 단위로 읽고 콘솔에 출력
[디렉토리로부터 스트림 얻기]
-> File의 정적 메소드인 list() 이용
->디렉토리 내용(서브 디렉토리 또는 파일 목록)을 스트림 통해 읽고 콘솔에 출력
[stream 예제]
package javaPro.java_Stream; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.stream.Stream; public class StreamEx0 { public static void main(String[] args) { List<String> list = Arrays.asList("홍길동", "김삿갓", "이몽룡", "성춘향"); System.out.println("외부 반복자 사용"); Iterator it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("내부 반복자 사용"); //list.stream().forEach(s -> System.out.println(s)); Stream<String> st = list.stream(); // List 객체를 Stream 객체 변환 st.forEach(s -> System.out.println(s)); System.out.println("다시 출력"); list.stream().forEach(s -> System.out.println(s)); } }
300x250'KIC > JAVA' 카테고리의 다른 글
day31 - JAVA (자바, 스트림, 플랫맵, 필터) (0) 2021.07.27 day30 - JAVA (자바, 스트림, 병렬 처리) (0) 2021.07.27 day28 - JAVA (자바, Collection 예제, 람다식) (0) 2021.07.22 day27 - JAVA (자바, Collection, Iterator, Map) (0) 2021.07.21 day26 - JAVA (자바, Collection Framework) (0) 2021.07.20