- 사다리 게임 게임 요구사항을 파악한다.
- 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
- 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
- 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.
- CarTest의 익명 클래스를 람다로 전환한다.
- Lambda의 sumAll, sumAllEven, sumAllOverThree의 중복을 람다를 사용해 제거한다.
- List의 담긴 값 중 3보다 큰 수만을 더해야 한다.
- 변경되는 부분과, 변경되지 않는 부분의 코드를 분리한다.
- 변경되는 부분을 인터페이스로 추출하고, 구현체를 람다를 사용해 익명 클래스로 구현한다.
- StreamStudyTest에서 map, reduce, filter를 실습한다.
- countWords를 filter로 구현한다.
- sumOverThreeAndDouble() 메서드를 구현한다.
- List에 담긴 모든 숫자 중 3보다 큰 숫자를 2배한 후 총합을 구한다.
- printLongestWordTop100() 메서드를 구현한다.
- 단어의 길이가 12자를 초과하는 단어를 추출한다.
- 12자가 넘는 단어 중 길이가 긴 순서로 100개의 단어를 추출한다.
- 단어 중복을 허용하지 않는다. 즉, 서로 다른 단어 100개를 추출해야 한다.
- 추출한 100개의 단어를 출력한다. 모든 단어는 소문자로 출력해야 한다.
- Optional
- Optional을 사용해 ageIsInRange2()를 구현한다.
- User의 ageIsInRange1() 메소드는 30살 이상, 45살 이하에 해당하는 User가 존재하는 경우 true를 반환하는 메소드이다.
- 메소드 인자로 받은 User를 Optional로 생성하면 stream의 map, filter와 같은 메소드를 사용하는 것이 가능하다.
- Optional.ofNullable(user)을 활용해 User을 Optional로 생성하는 것이 가능하다.
- Optional의 map(), filter() 메소드등을 활용해 필요한 데이터를 추출
- Optional의 isPresent() 메소드 활용
- Users의 getUser() 메소드를 자바 8의 stream과 Optional을 활용해 구현한다.
- Optional의 orElse() 메소드 활용해 구현한다.
- Expression의 of 메소드를 Stream을 사용해 구현한다.
- Optional의 orElseThrow() 메소드 활용해 구현한다.
- 일치하는 값 하나를 추출할 때 findFirst() 메소드를 활용 가능하다.
- UserTest의 테스트가 모두 pass해야 한다.
- Optional을 사용해 ageIsInRange2()를 구현한다.
- 게임에 참여할 사람 이름을 입력받는다.
- ex) 참여할 사람 이름을 입력하세요. (이름은 쉼표(,)로 구분하세요) pobi,honux,crong,jk
- 사람 이름은 쉼표(,)를 기준으로 구분한다.
- 사다리 게임에 참여하는 사람에 이름을 최대5글자까지 부여할 수 있다.
- 최대 사다리 높이를 입력받는다. ex) 최대 사다리 높이는 몇 개인가요?
- 실행결과를 출력한다.
- 사다리를 출력할 때 사람 이름도 같이 출력한다.
- 사람 이름을 5자 기준으로 출력하기 때문에 사다리 폭도 넓어져야 한다.
- 사다리 타기가 정상적으로 동작하려면 라인이 겹치지 않도록 해야 한다.
- |-----|-----| 모양과 같이 가로 라인이 겹치는 경우 어느 방향으로 이동할지 결정할 수 없다.
- 실행 결과를 입력받는다.
- ex) 실행 결과를 입력하세요. (결과는 쉼표(,)로 구분하세요) 꽝,5000,꽝,3000
- 사다리 실행 결과를 출력한다. 개인별 이름을 입력하면 개인별 결과를 출력하고, all을 입력하면 전체 참여자의 실행 결과를 출력한다.
- 결과를 출력하고 싶은 이름을 입력받는다. all을 입력받으면 전체 참여자로 출력한다.
- ex) 결과를 보고 싶은 사람은? pobi
- ex) 결과를 보고 싶은 사람은? all
- 개인 이름을 입력 받으면, 입력받은 개인의 당첨 결과를 출력한다.
- ex) 실행 결과 꽝
- 개인 이름은 여러번 입력해서 결과를 받을 수 있다.
- all을 입력받으면 전체 참여자의 실행 결과를 출력한다.
- 실행 결과 pobi : 꽝 honux : 3000 crong : 꽝 jk : 5000
- 결과를 출력하고 싶은 이름을 입력받는다. all을 입력받으면 전체 참여자로 출력한다.
- 한 라인의 좌표 값을 가지는 객체를 추가해 구현해 본다.
- 자바 8의 스트림과 람다를 적용해 프로그래밍한다.
- 모든 엔티티를 작게 유지한다.
- 한 줄에 점을 하나만 찍는다.
- 인스턴스 변수는 2개까지만 사용한다.
- 게터, 세터, 프로퍼티를 쓰지 않는다.