Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Stream.generate()와 Supplier: 다양한 활용 본문
Java의 Stream.generate() 메서드는 무한한 요소를 생성하는 데 사용됩니다. 이 메서드는 주로 Supplier 함수형 인터페이스와 함께 사용되며, Supplier는 요소를 생성하는 로직을 제공합니다. 이를 통해 다양한 종류의 데이터를 생성할 수 있습니다.
예제 1: 무한한 난수 스트림 생성하기
랜덤한 정수를 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.util.Random;
import java.util.stream.Stream;
public class RandomNumberStream {
public static void main(String[] args) {
Stream<Integer> randomNumberStream = Stream.generate(() -> new Random().nextInt());
randomNumberStream.limit(10).forEach(System.out::println);
}
}
예제 2: 날짜 스트림 생성하기
특정 범위의 날짜를 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.time.LocalDate;
import java.util.stream.Stream;
public class DateStream {
public static void main(String[] args) {
Stream<LocalDate> dateStream = Stream.generate(() -> LocalDate.now().plusDays(1));
dateStream.limit(10).forEach(System.out::println);
}
}
예제 3: 문자열 패턴 생성하기
특정 패턴을 갖는 문자열을 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.util.stream.Stream;
public class PatternStream {
public static void main(String[] args) {
Stream<String> patternStream = Stream.generate(() -> "Pattern");
patternStream.limit(10).forEach(System.out::println);
}
}
예제 4: 피보나치 수열 생성하기
피보나치 수열을 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.util.function.Supplier;
import java.util.stream.Stream;
public class FibonacciStream {
public static void main(String[] args) {
Stream<Integer> fibonacciStream = Stream.generate(new FibonacciSupplier());
fibonacciStream.limit(10).forEach(System.out::println);
}
static class FibonacciSupplier implements Supplier<Integer> {
int a = 0;
int b = 1;
public Integer get() {
int c = a + b;
a = b;
b = c;
return a;
}
}
}
예제 5: 사용자 입력 생성하기
사용자로부터 입력을 받아 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.util.Scanner;
import java.util.stream.Stream;
public class UserInputStream {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Stream<String> userInputStream = Stream.generate(() -> scanner.nextLine());
userInputStream.forEach(System.out::println);
}
}
예제 6: 고정된 값 생성하기
고정된 값을 생성하는 무한한 스트림을 생성하는 예제입니다.
import java.util.stream.Stream;
public class FixedValueStream {
public static void main(String[] args) {
Stream<String> fixedValueStream = Stream.generate(() -> "Fixed Value");
fixedValueStream.limit(10).forEach(System.out::println);
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] Stream.collect()를 사용하여 Stream을 List로 변환하는 방법 (0) | 2024.03.13 |
---|---|
[Java/자바] Stream.toArray()를 사용하여 Stream을 List로 변환하는 방법 (0) | 2024.03.13 |
Nginx에서 X-Real-IP 설정하기: 예제 및 설명 (0) | 2024.03.13 |
[Java/자바] Supplier 예제 (0) | 2024.03.13 |
[Java/자바] 다수의 Predicate를 or()로 연결하여 수행하기 (0) | 2024.03.13 |