지난 시간에는 스트림이란 무엇인지에 대해 간략하게 알아보았다. 오늘은 스트림을 얻는 방법에 대해 알아보자.
1. 소스에 따른 스트림 구현 객체 얻기
리턴 타입 | 메소드 (매개 변수) | 소스 |
Stream<T> | java.util.Collection.stream() java.util.Collection.parallelStream() |
Collection |
Stream<T> IntStream LongStream DoubleStream |
Arrays.stream(T[]), Stream.of(T[]) Arrays.stream(int[]), IntStream.of(int[]) Arrays.stream(long[]), LongStream.of(long[]) Arrays.stream(double[]), DoubleStream.of(double[]) |
Array |
IntStream | IntStream.range(int, int) IntStream.rangeClosed(int, int) |
int range |
LongStream | LongStream.range(long, long) LongStream.rangeClosed(long, long) |
long range |
Stream<Path> | Files.find(Path, int, BiPredicate, FileVisitOption) Files.list(Path) |
Directory |
Stream<String> | Files.lines(Path, Charset) BufferedReader.lines() |
File |
DoubleStream IntStream LongStream |
Random.doubles(...) Random.ints() Random.longs() |
Random number |
2. 컬렉션에서 스트림 얻기
List<String> nameList = Arrays.asList("A", "B", "C", "D");
Stream<String> stream = nameList.stream();
3. 배열에서 스트림 얻기
String[] nameList = {"A", "B", "C", "D"};
Stream<String> stream = Arrays.stream(nameList);
4. 숫자 범위로 스트림 얻기
IntStream stream = IntStream.range(1, 100); // 1 ~ 99
IntStream stream = IntStream.rangeClosed(1, 100); // 1 ~ 100
5. 파일에서 스트림 얻기
Path path = Paths.get("file path"); // 파일 경로 정보를 가지는 Path 객체 생성
Stream<String> stream = Files.lines(path, Charset.defaultCharset());
6. 디렉토리에서 스트림 얻기
Path path = Paths.get("file path"); // 파일 경로 정보를 가지는 Path 객체 생성
Stream<Path> stream = Files.list(path); // 서브 디렉토리 또는 파일 목록
'Web > Java' 카테고리의 다른 글
JVM (Java Virtual Machine) (0) | 2021.09.01 |
---|---|
Comparable과 Comparator (0) | 2021.08.10 |
Stream - (1) 스트림이란? (0) | 2021.07.12 |
인터페이스 (Interface) (0) | 2021.03.30 |
추상 클래스 (Abstract Class) (0) | 2021.03.30 |
댓글