Stream

devyumi·2023년 10월 16일
0

Java

목록 보기
2/14

Stream

  • 컬렉션 데이터를 표준화된 방법으로 처리하는 것
  • List, Set, Map의 성격이 같지 않아서 처리 방식이 모두 구별되었다
  • Stream을 사용함으로써 표준화된 방법으로 데이터를 가공할 수 있음 (ReadOnly)

특징

  • ReadOnly
  • 일회용: 최종 연산이 끝났다면 다시 스트림을 생성해야 함

순서

1. 생성: 스트림 객체 생성

Map<Integer, String> map = new HashMap<>();
map.put(1, "a");
map.put(2, "d");
map.put(3, "z");
map.put(4, "g");
map.put(5, "e");
map.put(6, "e");
map.put(7, "r");
map.put(8, "z");
map.put(9, "a");
map.put(10, "h");
map.put(11, "o");
map.put(12, "m");

Stream<String> stream = map.values().stream();

2. 중간 연산: 연산 결과가 스트림. 반복 가능.

  • distinct(): 중복 제거
stream.distinct().forEach(System.out::print); //adzgerhom

  • sorted(): 정렬
stream.sorted().forEach(System.out::print); //aadeeghmorzz

  • limit(): 자르기
stream.limit(4).forEach(System.out::print); //adzg

  • filter(): 필터링
stream.filter(a -> a.equals("a")).forEach(System.out::print); //aa

3. 최종 연산: 연산 결과가 스트림이 아닌 연산. 한번만 가능.

  • forEach(): 스트림의 모든 요소에 대한 작업 수행
stream.forEach(System.out::print);

  • count(): 스트림 요소의 개수 반환
long result = stream.limit(5).count();
System.out.println(result); //5

  • findAny(): 가장 먼저 찾은 요소 반환
Optional<String> result = stream.limit(5).findAny();
System.out.println(result.get());

  • findFirst(): 가장 앞에 있는 요소 반환
Optional<String> result = stream.limit(5).findFirst();
System.out.println(result.get()); //a

0개의 댓글

관련 채용 정보