운기의 블로그
코틀린 - Collection 본문
코틀린 collection은 자바와 동일하게 list, set, map 이 존재한다.
하지만 코틀린의 collection은 자바와 다른점이 있는데 읽기전용인터페이스와 쓰기가 가능한 인터페이스 두개로 나누어진다는 점입니다.
우선 코틀린 공식 홈페이지에서 가이드하고 있는 내용을 먼저보자
읽고 쓰기가 가능한(가변형) MutableCollection인 MutableList, MutableSet, MutableMap
읽기만 가능한(불변형) List, Set, Map으로 구성되어있다.
-> 제가 생각한 두개의 차이점은 동적으로 메모리에 할당이 가능한가에 대한 여부이다. 가변형인 경우는 동적으로 데이터를 추가하고 삭제하고 가능하지만, 불변형의 경우에는 초기값을 할당해 주고 데이터를 변경 할 수 없다.
어떠한 이유로 나눠서 사용하는지에 대한 내용은 다음 포스팅에서 남기도록하고
먼저 사용방법에 대해서 알아보도록하자.
간단한 랜덤함수를 사용해 6개의 추첨번호를 뽑는 로직이다.
중복을 제거하고 6개의 숫자를 담기 위해서 set을 사용했고 랜덤으로 나오는 숫자를 동적으로 담기 위해
mutableSet을 사용했다.
다른 방법은 arrayList를 사용하는것이다.
arrayList는 mutableList를 상속받았기 때문에 동적으로 숫자를 추가 할 수 있는것이다.
만약에 가변형이 아닌 불변형인 ListOf를 쓴다면 초기화가 이뤄지지 않은 상태이기때문에
에러가 발생한다. 그렇기에 아래 구문은 실행되지않는다.
'코틀린' 카테고리의 다른 글
코틀린 - mutable / immutable collection으로 나뉘어진 이유 (0) | 2022.03.25 |
---|---|
코틀린 - 코틀린의 함수는 1급 함수이다 !?! (0) | 2022.03.23 |
코틀린 - when (0) | 2022.03.22 |