스트림 문법

인철·2023년 10월 12일
0

Spring

목록 보기
20/48

스트림 문법

데이터 컬렉션을 처리하고 조작하기 위한 함수형 프로그래밍 기법
데이터를 선언적으로 처리 가능, 병렬 처리도 간편하게 수행 가능

  • 데이터 검색과 필터링 : 데이터베이스 쿼리나 컬렉션에서 원하는 항목을 검색하고 필터링할때 스트림 사용가능
List<User> users = userRepository.findAll();
List<User> activeUsers = users.stream()
    .filter(user -> user.isActive())
    .collect(Collectors.toList());
  • 매핑과 변환 : 데이터를 한 형식에서 다른 형식으로 매핑하거나 변환하는 경우 스트림을 사용가능
List<String> userNames = users.stream()
    .map(user -> user.getName())
    .collect(Collectors.toList());
  • 정렬 : 데이터를 정렬하러면 스트림을 사용 가능
List<User> sortedUsers = users.stream()
    .sorted(Comparator.comparing(User::getJoinDate))
    .collect(Collectors.toList());
  • 그룹화: 데이터를 특정 기준에 따라 그룹화하려면 스트림을 사용할 수 있습니다
Map<String, List<User>> usersByCountry = users.stream()
    .collect(Collectors.groupingBy(User::getCountry));
  • 집계와 리덕션: 데이터를 집계하거나 리덕션(축소)하려면 스트림을 사용할 수 있습니다.
int totalAge = users.stream()
    .mapToInt(User::getAge)
    .sum();
  • 병렬 처리: 스트림은 데이터를 병렬로 처리하는 데 도움을 줍니다. 스프링 부트에서는 병렬 스트림을 사용하여 성능을 향상시킬 수 있습니다
List<User> activeUsers = users.parallelStream()
    .filter(user -> user.isActive())
    .collect(Collectors.toList());
  • 스트림 연산 체인: 스트림을 사용할 때 연산을 체인으로 연결하여 복잡한 데이터 처리 로직을 작성할 수 있습니다.
List<User> filteredAndSortedUsers = users.stream()
    .filter(user -> user.getAge() > 18)
    .sorted(Comparator.comparing(User::getLastName))
    .collect(Collectors.toList());
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글