Skip to content

Stream API

Jeonghyun Kang edited this page May 15, 2022 · 1 revision

스트림 실습

실습 준비 사항

// 스프링 수업
List<OnlineClass> springClasses = new ArrayList<>();
springClasses.add(new OnlineClass(1, "spring boot", true));
springClasses.add(new OnlineClass(2, "spring data jpa", true));
springClasses.add(new OnlineClass(3, "spring mvc", false));
springClasses.add(new OnlineClass(4, "spring core", false));
springClasses.add(new OnlineClass(5, "rest api development", false));

// 자바 수업
List<OnlineClass> javaClasses = new ArrayList<>();
javaClasses.add(new OnlineClass(6, "The Java, Test", true));
javaClasses.add(new OnlineClass(7, "The Java, Code manipulation", true));
javaClasses.add(new OnlineClass(8, "The Java, 8 to 11", false));

// 모든 수업
List<List<OnlineClass>> keesunEvents = new ArrayList<>();
keesunEvents.add(springClasses);
keesunEvents.add(javaClasses);

실습 문제

1. "spring"으로 시작하는 스프링 수업

System.out.println("spring 으로 시작하는 스프링 수업");
springClasses.stream()
        .filter(oc -> oc.getTitle().startsWith("spring"))
        .forEach(oc -> System.out.println(oc.getId()));

2. close 되지 않은 스프링 수업

springClasses.stream()
        .filter(Predicate.not(OnlineClass::isClosed))
        .forEach(oc -> System.out.println(oc.getId()));

3. 스프링 수업 이름만 모아서 스트림 만들기

springClasses.stream()
        .map(OnlineClass::getTitle)
        .forEach(System.out::println);

4. 두 수업 목록에 들어있는 모든 수업 아이디 출력

keesunEvents.stream()
        .flatMap(Collection::stream)
        .map(OnlineClass::getId)
        .forEach(System.out::println);

5. 10부터 1씩 증가하는 무제한 스트림 중에서 앞에 10개를 제외하고 10개를 출력

Stream.iterate(10, i -> i+1)
        .skip(10)
        .limit(10)
        .forEach(System.out::println);

6. 자바 수업 중에 제목에 "Test"가 들어있는 수업이 있는지 확인

boolean test = javaClasses.stream()
        .anyMatch(oc -> oc.getTitle().contains("Test"));
System.out.println(test);

7. 스프링 수업 중에 제목에 "spring"이 들어간 것만 모아서 리스트로 만들기

List<String> spring = springClasses.stream()
        .filter(oc -> oc.getTitle().contains("spring"))
        .map(OnlineClass::getTitle)
        .collect(Collectors.toList());
System.out.println(spring);

Clone this wiki locally