[개발일기] 22-07-04

오늘·2022년 7월 4일
0

[개발일기]

목록 보기
72/199

📝 간단하게 쓰는 개발일기

함수형 코틀린

8장을 마무리했다.
Set과 MutableSet, Map과 MutableMap, 컬렉션의 데이터 작업, 컬렉션 그룹화에 대해 공부했다.

정리

  • Set은 순서가 없어서 indexOf(item), add(index, item) 함수를 가지지 않는다.
  • MutableSet에 중복된 item을 추가하더라도 하나만 남는다. 이는 hashCode 함수와 equals 함수를 내부적으로 실행하여 중복된 요소를 담지 않기 때문이다.
  • data class의 객체는 set에 중복되게 들어가더라도 중복된 요소가 들어가지 않지만, 커스텀 클래스의 객체는 set에 중복된 요소가 들어가게 된다. 이는 커스텀 클래스에는 hashCode 함수와 equals 함수가 구현되지 않았기 때문인데, 이를 직접 구현하면 set에 들어갈 때 중복된 요소가 없게 된다.
  • Map은 키-값 쌍으로 정보를 저장한다.
  • Map의 요소에 접근하거나 요소를 추가할 때 []를 이용할 수 있다. 이때 괄호 안에 인덱스 대신 키가 들어간다.
  • Map에서 키는 중복되지 않으며, 값은 키에 의해 검색되기 때문에 중복이 가능하다.
  • Map에 같은 키를 가지는 값을 추가하려고 시도하면, 마지막에 추가된 값으로 갱신된다.
  • map 함수는 인자로 넘겨진 람다를 컬렉션의 각 요소에 적용한 결과 컬렉션을 반환한다.
  • flatMap은 컬렉션의 각 요소에 대한 새로운 컬렉션을 생성하고 그것을 결합한 컬렉션을 반환한다.
  • filter 함수는 컬렉션의 각 요소에 인자로 넘겨진 람다의 조건식을 적용해서 참이 되는 요소만을 가지는 컬렉션을 반환한다.
  • drop 함수는 컬렉션의 요소 중 인자로 받은 수만큼의 요소를 앞에서부터 버린 컬렉션을 반환한다.
  • dropLast 함수는 drop과 반대로 인자로 받은 수만큼의 요소를 뒤에서부터 버린 컬렉션을 반환한다.
  • take 함수는 컬렉션의 요소 중 인자로 받은 수만큼의 요소를 앞에서부터 가져온 컬렉션을 반환한다.
  • takeLast 함수는 컬렉션의 요소 중 인자로 받은 수 만큼의 요소를 뒤에서부터 가져온 컬렉션을 반환한다.
  • takeWhile 함수는 인자로 넘겨진 람다의 조건식을 만족할 때까지만 앞에서 요소를 가져온 컬렉션을 반환한다.
  • takeLastWhile 함수는 takeWhile 함수와 반대로 뒤에서부터 람다의 조건식을 만족하는 동안만 요소를 가져온 컬렉션을 반환한다.
  • zip 함수는 두 컬렉션을 압축하여 각 컬렉션 요소의 Pair를 가지는 컬렉션을 반환한다.
  • zip 함수 사용 시 두 컬렉션의 길이가 다르면 짧은 쪽을 기준으로 한다.
  • zipWithNext 함수는 컬렉션의 각 요소와 그 다음 요소의 Pair를 가지는 컬렉션을 반환한다.
  • groupby 함수를 통해 인자로 넘긴 람다의 조건식의 결과를 키로 하고 그에 해당하는 컬렉션의 각 요소들을 가지는 컬렉션을 값으로 하는 Map을 얻을 수 있다. 이를 통해 컬렉션을 요구사항에 맞게 그룹화 할 수 있다.

CS 스터디

3장 운영체제 중 프로세스와 스레드 부분을 정리하는 중이다.

profile
Junior Mobile 개발자

0개의 댓글