Idealim
article thumbnail
Published 2021. 9. 16. 16:08
[Kotlin] Collection Coding Language/Kotlin

/* 본 게시물은 ' Do it! 코틀린 프로그래밍 | with 황영덕 ' 의 내용과 참고자료를 토대로 작성되었습니다. */

/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */

참고 자료

[URL] :


#Collection

컬렉션은 자주 사용하는 기초적인 자료구조를 모아 놓은 일종의 프레임워크이다.

 

코틀린의 컬렉션

코틀린의 컬렉션은 자바 컬렉션의 구조를 확장 구현한 것이다. 컬렉션의 종류로는 List, Set, Map 등이 있으며 자바와는 다르게 불변형 가변형으로 나뉜다.

가변형 컬렉션은 객체에 데이터를 추가하거나 변경할 수 있고 불변형 컬렉션은 데이터를 한 번 할당하면 읽기 전용이 된다. 자바에서는 오로지 가변형 컬렉션만 취급되기 때문에 자바와 상호작용할 때 주의해야한다.

컬렉션 불변형(읽기 전용) 가변형(데이터 수정 가능)
List listOf mutableListOf, arrayListOf
Set setOf mutableSetOf, hashSetOf, linkedSetOf, sortedSetOf
Map mapOf mutableMapOf, hashMapOf, linkedMapOf, sortedMapOf

 

컬렉션 인터페이스

코틀린의 컬렉션 인터페이스 관계는 다음과 같다.

[출처] : https://codechacha.com/ko/collections-in-kotlin/

가장 최상위에 있는 Iterable 인터페이스는 컬렉션이 연속적인 요소를 표현할 수 있도록 한다. 이를 상속 받으면 hasnext()와 next() 메서드를 가지고 요소를 순환하게 된다. Iterable로부터 확장된 Collection 인터페이스는 불변형이므로 Set, List는 읽기 전용 컬렉션이다. 

Collection 인터페이스의 몇 가지 주요 멤버 프로퍼티와 메서드는 다음과 같다.

멤버 메서드 설명
size 컬렉션 크기 반환
isEmpty() 컬렉션이 비어 있으면 true 반환
contains(element: E) 특정 요소가 있다면 true 반환
containsAll(elements: Collection<E>) 인자로 받아들인 컬렉션이 있다면 true 반환

*불변형 컬렉션인 List, Set 는 add() 와 같은 메서드가 존재하지 않는다.

 

이번에는 MutableIterable과 MutableCollection 인터페이스에 대해 알아보자. 이 둘은 가반형 컬렉션을 지원하는 인터페이스이며 요소를 추가하거나 제거하는 등의 기능을 수행한다. MutableCollection 의 대표적인 메서드는 다음과 같다.

멤버 메서드 설명
add(element: E) 인자로 전달받은 요소를 추가하고 true를 반환,
이미 요소가 있거나 중복이 허용되지 않으면 false 반환
remove(element: E) 인자로 전달 받은 요소를 삭제하고 true를 반환,
삭제하려는 요소가 없다면 false 반환
addAll(elements: Collection<E>) 컬렉션을 인자로 전달 받아 모든 요소를 추가하고 true를 반환,
실패하면 false를 반환
removeAll(elements: Collection<E>) 컬렉션을 인자로 전달 받아 모든 요소를 삭제하고 true를 반환하며,
실패하면 false를 반환
retainAll(elements: Collection<E>) 인자로 전달 받은 컬렉션의 요소만 보유한다. 성공하면 true를 반환하고, 
실패하면 false를 반환
clear() 컬렉션의 모든 요소 삭제

 

 

 

 

자바 컬렉션을 기반으로 확장했기 때문에

자바 컬렉션에 대해 알아봐야겠다.

 

 

 

반응형
profile

Idealim

@Idealim

읽어주셔서 감사합니다. 잘못된 내용이 있으면 언제든 댓글로 피드백 부탁드립니다.