본문 바로가기

Kotlin

컬렉션1 ) 컬렉션 타입과 상속관계

컬렉션(set, list, map) 타입에는 크게 두가지가 있다.

 

  • read-only(immutable)
    • read-only 컬렉션 타입은 공변적이다. 만약 Rectangle 클래스가 Shape 클래스를 상속했다면
      List<Rectangle>은 List<Shape>을 사용할 수 있는곳 어디에서나 쓰일 수 있다. 
  • mutable 
    • mutable 컬렉션은 공변적이지 않다. 공변적으로 사용할 경우 런타임 오류를 일으킬 수 있다.
      만약 MutableList<Rectagle>이 MutableList<Shape>의 서브타입일 경우 Shape을 상속받은 다른 타입을 insert할 경우 Rectangle 타입으로 매개를 넣어야하는것을 위반할 수 있다. 🥕
    • mutable 컬랙션을 사용한다고 반드시 var를 쓸 필요는 없다. val을 써도 .add해서 리스트를 수정할 수 있다.
      어차피 참조된 번지수는 같기 때문이다. 그러나 초기화된 val에 mutableList를 메소드로 해서 새로 참조시키는건 컴플리에이션 에러가 난다.

 

 

컬렉션 타입들의 상속관계

 

'Kotlin' 카테고리의 다른 글

랜덤 수 추출 알고리즘  (0) 2021.09.05
컬렉션2 ) 코틀린 컬렉션의 종류소개(List, Set, Map)  (0) 2021.08.28
Scope Function  (0) 2021.08.21
Kotlin vs Java  (0) 2021.08.21
데이터 타입  (0) 2021.08.19