2. Stream API
1) 용도:
가. 이전 사용 형태
컬렉션,배열,파일에서 읽어서 출력 및 간단한 작업(컬렉션에 값추가,삭제,수정)
만약에 정렬기능, 필터기능, 가공기능이 필요하면 따로 구현해야 됨.
나. Stream API 사용 형태
컬렉션,배열,파일에서 Stream 타입을 얻으면,
Stream 정렬기능, 필터기능, 가공기능,.... 내장이 되어있음.
* 사용
a. 컬렉션/배열/파일
b. Stream 타입을 얻음.
c. 중간처리
- 정렬
- 가공
- 중복체거
- skip
..
d. 최종처리
- 총합,평균,최대값,최소값, 갯수
- 컬렉션타입변경(List로 변경, Map변경,..)
- 반복출력
2. 스트림 얻는 방법
가. 컬렉션
List<String> list = Arrays.asList("홍길동","이순신","유관순");
Stream<String> s = list.stream();
나. 배열
String [] names = {"홍길동1","이순신1","유관순1"};
Stream<String> s2 = Arrays.stream(names);
Stream<String> s3 = Stream.of(names);
Stream<String> s4 = Stream.of("홍길동2","이순신2","유관순2");
package exam24_스트림;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Stream;
public class StreamTest01_컬렉션및배열에서얻기 {
public static void main(String[] args) {
// 1. 컬렉션
List<String> list = Arrays.asList("홍길동","이순신","유관순");
Stream<String> s = list.stream();
// 반복출력 forEach(Consumer<? super T> action)
// Consumer 익명클래스
Consumer<String> c = new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
};
// s.forEach(c);
// Consumer 람다
Consumer<String> c2 = t -> System.out.println(t);
// 메서드 호출(method reference)
Consumer<String> c3 = System.out::println;
// s.forEach(c3);
// s.forEach(c3); // 에러발생? 이전 forEach 에서 스트림 모두 소멸됨.
// s.forEach(System.out::println);
list.stream().forEach(System.out::println); // 일반적임.
System.out.println();
// 2. 배열
String[] names = {"홍길동","이순신","유관순"};
// 가. Arrays.stream(배열)
Stream<String> s2 = Arrays.stream(names);
s2.forEach(System.out::println);
System.out.println();
// 나. Stream.of(T)
Stream<String> s3 = Stream.of(names);
s3.forEach(System.out::println);
System.out.println();
// 다. Stream.of(T...)
Stream<String> s4 = Stream.of("홍길동","이순신","유관순");
s4.forEach(System.out::println);
System.out.println();
// 정수형
Stream<Integer> s5 = Stream.of(10,20,30);
s5.forEach(System.out::println);
System.out.println();
}// end main
}
'[study]이론정리 > JAVA(eclipse)' 카테고리의 다른 글
java 14 일차 _ 04. 스트림(최종처리) (0) | 2024.03.27 |
---|---|
java 14 일차 _ 03. 스트림(중간처리) (0) | 2024.03.27 |
java 14 일차 _ 01. 메서드참조 (0) | 2024.03.27 |
java 13일차 _ 01. 제네릭스( generics ) / 컬렉션 API / 표준API함수형인터페이스 (0) | 2024.03.26 |
java 13 일차 _ 12일차 정리 (0) | 2024.03.26 |