KSI일기장
java stream 생성 및 출력 본문
for문을 stream에서 forEach로 대체할 수 있다
stream 생성 및 출력 예제
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class StreamEx {
public static void main(String[] args) {
//리스트 생성
List<Integer> list = Arrays.asList(1,2,3,4);
//리스트를 스트림으로 재생성
Stream<Integer> listStream = list.stream();
//최종연산 forEach() -> stream 닫힘
listStream.forEach(System.out::print);
//최종연산을 수행하면 stream은 닫히므로 한번 더 출력하려면 스트림 다시 생성 해야된다
listStream = list.stream();
listStream.forEach(System.out::print);
}
}
결과: 1234
배열
문자열 스트림 생성 및 출력 예제
배열사용
//문자열 스트림 생성
Stream<String> strStream = Stream.of(new String[] {"ab", "cde", "f"});
strStream.forEach(System.out::print);
String[] strArr = {"a", "b", "c"};
Stream<String> strStream = Stream.of(strArr);
// == Stream<String> strStream = Array.stream(strArr);
결과: abcdef abc
int형 스트림 생성 및 출력
//int 스트림 생성
int[] intArr = {1,2,3,4};
IntStream intStr = Arrays.stream(intArr);
System.out.println("count : " + intStr.count());
IntStream intSum = Arrays.stream(intArr);
System.out.println("sum : " + intSum.sum());
IntStream intAvr = Arrays.stream(intArr);
System.out.println("Average : " + intAvr.average());
결과 :
난수 스트림 예제
public static void main(String[] args) {
//*****난수 스트림*****
System.out.println("************************무한스트림(범위지정X)****************************");
//무한스트림(범위지정X)
IntStream ranStream = new Random().ints();
ranStream.limit(5).forEach(System.out::println);
System.out.println("*************************무한스트림(범위지정O)1***************************");
//무한스트림(범위지정O)
//방법1
IntStream ranStream2 = new Random().ints(1,10);
ranStream2.limit(5).forEach(System.out::println);
System.out.println("*************************무한스트림(범위지정O)2***************************");
//방법2
IntStream ranStream3 = new Random().ints(5,1,10);
ranStream3.forEach(System.out::println);
}
결과:
스트림 람다식 사용 예제
System.out.println("*************************람다식 사용***************************");
System.out.println("*************************interate***************************");
//람다식 사용
//iterate 단항 연산자
Stream<Integer> intStream = Stream.iterate(1, n->n+2);
intStream.limit(8).forEach(System.out::println);
System.out.println("*************************gernerate***************************");
//generate 입력x, 출력O
Stream<Integer> oneStream = Stream.generate(()->1);
oneStream.limit(5).forEach(System.out::println);
결과:
'Java' 카테고리의 다른 글
charAt과 substring의 차이 (0) | 2023.11.30 |
---|---|
향상된 for문 (1) | 2023.11.29 |
JavaScript insertAdjacentText()메서드 (0) | 2023.11.01 |
JavaScript 프라미스, async와 await (0) | 2023.11.01 |
java 람다식 Stream 중간연산과 최종연산의 종류 (0) | 2023.08.09 |