본문 바로가기
학습로그

[레벨1] 블랙잭 학습로그

by 에드박 2021. 4. 27.

학습로그


[동작 파라미터] 모던 자바 인 액션 2장 - 4

내용

  • 동작을 파라미터화 하는 방법을 학습
  • 함수형 인터페이스의 동작 원리를 학습

[Lambda] 모던 자바 인 액션 3장 - 5

내용

  • 람다의 형식 추론에대해 학습
  • 함수형 인터페이스에 대해 학습

링크


[Stream] 모던 자바 인 액션 4장, 5장 - 5

내용

  • Java8에서 추가된 Stream API에 대해 학습
  • 컬렉션과 Stream의 외부반복, 내부반복 학습
  • 중간 연산, 최종 연산의 개념 학습

[Stream] distinct 와 sorted -5

내용

  • 스트림의 중간연산 distinct와 sorted중 어떤 것을 먼저 할 때 더 빠른가 에 대해 실험
list.stream() .distinct() .sorted() list.stream() .sorted() .distinct()
sorted()는 comparator를 이용해서 정렬
distinct()는 정렬된 데이터와 아닌 데이터를 처리하는 로직이 다르다

 

  • 전자의 경우 정렬된 데이터를 순차적으로 equals로 비교하여 처리
  • 후자의 경우 hashSet을 이용해서 처리
  • distinct를 먼저 할 경우
    • 정렬해야할 모수가 적어진다.
    • hashSet.contains와 정렬된 데이터를 동등비교하는 것은 큰 차이가 없어보임
    • (후자의 경우도 전체를 iterate하는 것이 아니라 이전 값과 동일한지만 비교하니 둘다 O(1) 일 수 있음)

dinstinct가 정렬할 데이터 모수가 적어져서 연산 비용이 줄었다(?)

 


학습로그

[일급 컬렉션] Stream API - 1

내용

  • 기존에는 일급 컬렉션에서 getter인 toList 같은 메서드를 호출해서 일급 컬렉션의 필드를 가져온 후 stream을 호출

players.toList().stream().map(...)

  • 일급 컬렉션에서 getter 없이 stream을 사용할 수 있도록 구현

players.stream().map(...)


 

댓글