1 of 9

익명 클래스에서 람다로

2 of 9

익명 클래스

- 문자열을 길이순으로 정렬

결과!

3 of 9

람다(lambda)

- 비교자 생성 메서드 사용

- List의 sort 메서드 사용

- 타입에 대한 언급 없음

4 of 9

람다의 한계

- 이름도 없고 메서드나 클래스와 다르게 문서화 할 수 없음

- 추상 클래스의 인스턴스를 만들 때 람다를 사용 할 수 없음

추상 클래스

익명 클래스

- 자기 자신 참조가 안됨. this 키워드는 바깥 인스턴스를 가리킴

5 of 9

스트림을 주의해서 사용하자!

6 of 9

간단한 예

  • 사용자가 지정한 문턱값보다 원소 개수를 많이 가진 아나그램 출력

evil

live

eilv

결과!

7 of 9

스트림을 사용하자

8 of 9

적절히 사용하자

  • 중간 연산 생략
  • 연산에 적절한 이름을 지어주고 세부 구현을 프로그램 로직 밖으로 빼내 가독성 높임

9 of 9

무엇이 더 좋은가?

  • 반복 방식
  • 스트림 방식

무늬(Suit), 숫자(Rank)

최고의 방법은 둘 다 해보고 더 나은 쪽을 택하는 것!