[Kotlin] - Collection

2023. 10. 15. 00:08· Skils/Kotlin
목차
  1. 불변형의 공통적인 기능
  2. 가반형의 공통적인 기능
  3. List
  4. 불변형 List
  5. Set
  6. 불변형과 가변형 Set
  7. Set의 종류
  8. Map
  9. Collection의 유용한 메서드
  10. sort
  11. map
  12. forEach
  13. count
  14. filter
  15. any, all, none
  16. 그 외 유용한 함수

코틀린 Collection에는 대표적으로 List, Set, Map이 있다. 자바와는 다르게 코틀린에서는 불변형, 가변형 Collection이 있다.

불변형은 읽기 전용, 가변형은 읽고 쓰기 전용 각각의 Collection마다 고유의 기능이 있다.

 

불변형의 공통적인 기능

  • size : 컬렉션의 크기
  • isEmpty() : 컬렉션이 비어있는지 확인. 비어있다면 True, 아니라면 False
  • contains(element) : 특정 요소가 있다면 true, 아니라면 false

가반형의 공통적인 기능

  • add(element) : 추가
  • remove(element) : 삭제
  • addAll(Collection ) : 인자로 받은 컬렉션의 모든 요소 추가
  • removeAll(Collection) : 인자로 받은 컬렉션의 모든 요소를 삭제
  • clear() : 컬렉션의 모든 요소 삭제

List

불변형 List

val array : List<String> = listOf("햄버거","피자","치킨")

위와 같은 코드로 불변형 list를 생성할 수 있다.

 

list의 메서드

  • get(index) : 특정 인덱스의 요소를 반환
  • indexOf(element) : 첫 번째 인덱스를 반환, 없으면 -1
  • lastIndexOf(element) : 마지막 인덱스를 반환, 없으면 -1
  • subList(from, to) : from~to 범위 내 요소를 반환
val array : ArrayList<String> = arrayListOf("햄버거","피자","치킨")
val array : MutableList<String> = mutableListOf("햄버거","피자","치킨")

 

 

반환타입이 MutableList인데 인자가 list인 경우는 list를 MutableList로 변형해서 사용해야 할 경우도 있습니다.

val list = listOf("햄버거","피자","치킨")
val addList = list.toMutableList()
addList.add("탕수육")

 

Set

set은 동일한 요소를 중복해서 가질 수 없습니다.

 

불변형과 가변형 Set

val immutableSet = setOf("햄버거","피자","치킨","탕수육")
immutableSet.add("짜장면") // error
val mutableSet = mutableSetOf(""햄버거","피자","치킨","탕수육")
mutableSet.add("짜장면")

 

Set의 종류

Hash Set

Hash table이란 내부적으로 키와 인덱스를 이용해서 검색과 변경이 매우 빠르다.
가변성이기 때문에 추가와 삭제가 가능하다.
val hashSet = hashSetOf("햄버거","피자","치킨","탕수육")

SortedSet

데이터의 값에 따라 정렬된 상태로 변환한다.
검색과 정렬이 뛰어나지만, 추가와 삭제 시 항상 정렬을 하기 때문에 HashSet보다 시간이 오래 걸린다.
val sortedSet = sortedSetOf("햄버거","피자","치킨","탕수육")

 

LinkedSet

LinkedList를 이용한 Hashset으로, 다음 데이터를 가리키는 포인터 연결을 통해 메모리를 효율적으로 사용가능하다.
val linkedSet = linkedSetOf("햄버거","피자","치킨","탕수육")

 

Map

key와 value가 한쌍의 형태로 저장된다.
Key는 중복될 수 없고, 유일성을 가지며, value는 중복해서 사용할 수 있다.
val map : Map<String,Int> = mapOf("햄버거" to 1)

 

Map은 Set과 List와 다른 독립적인 메서드를 가진다.

  • size : Map의 크기를 반환
  • Keys : 모든 key반환
  • values : 모든 value 반환
  • isEmpty() : 비어있는지 확인  비어있다면 True / 아니라면 false
  • containsKey(key) : 해당하는 키가 있다면 True/ 아니라면 false
  • containsValue(value) : 해당하는 값이 있다면 true / 아니라면 false
  • get(key) : 키에 해당하는 값을 반환

 

가변형 map의 메서드

  • put(key, value) : key와 value를 Map에 추가
  • remove(key) : key에 해당하는 요소를 제거
  • putAll(Map) : Map에 데이터를 갱신, 추가함
  • clear() : 모든 요소 삭제

 

Collection의 유용한 메서드

sort

Collection의 각 요소들을 정렬해 준다. (오름차순)
val ary : MutableList<Int> = mutableListOf(5,2,4,3)
ary.sort() // 2,3,4,5
ary.reversed() //3,4,2,5
ary.sortedDescending{it} // 5,4,3,2
val list = mutableListOf(1 to "햄버거", 2 to "짜장면", 5 to "치킨", 3 to "피자")
list.sortBy{it.second} //list의 두번째 값을 통해서 정렬
// (1,"햄버거") , (2,"짜장면") , (3,"피자") , (5,"치킨")

map

Collection의 각 요소에 접근해서 연산을 한 후 다른 Collection으로 변환할 수 있다.

 

val list : List<Int> = listOf(1,2,3)
var a = list.map { it*it } //1,4,9

forEach

Collection의 처음부터 끝까지 순환하는 방법이고, it을 통해서 각 요소에 접근한다.
val list : List<Int> = listOf(1,2,3)
list.forEach{println(it)}
list.forEachIndexed{idx,element->
ary[idx] = element
}

count

Collection에서 조건에 맞는 요소의 개수를 반환한다.
val list = listOf(1,2,3,4,5,6,7)
println(list.count{it>=3}) // 5

filter

조건에 맞는 요소를 컬렉션으로 다시 반환한다.
val list = listOf(1,2,3,4,5,6,7,8,9,10)
val list2 = list.filter{it>=4} // 4,5,6,7,8,9,10

any, all, none

Collection의 모든 요소를 조건에 맞춰서 검사한다.
any : 조건을 하나라도 만족한다면 true를 반환
all : 조건을 모두 만족해야 true를 반환
none : 조건을 모두 만족하지 않는다면 true를 반환
val list = listOf(1,2,3,4)
list.any{it>1} // true
list.all{it>1} //false
list.none{it>1} //false

 

그 외 유용한 함수

  • sumBy : 모든 요소를 합한 결과를 반환함.
  • take(index) : 앞에서 index까지의 요소를 반환
  • takeLast(index) : 뒤에서 index 만큼 요소를 반환
  • distince() : 중복요소가 있을 경우 1개로 취급해서 새로 반환
저작자표시 (새창열림)

'Skils > Kotlin' 카테고리의 다른 글

[Kotlin] Data class  (1) 2024.01.10
[Kotlin] - 순열, 조합, 중복순열, 중복조합  (0) 2023.10.31
[Kotlin] - Scope function(apply, run, with, also, let)  (0) 2023.09.09
[Kotlin]-정규표현식  (0) 2023.08.10
[Kotlin] - 코루틴  (0) 2023.03.05
  1. 불변형의 공통적인 기능
  2. 가반형의 공통적인 기능
  3. List
  4. 불변형 List
  5. Set
  6. 불변형과 가변형 Set
  7. Set의 종류
  8. Map
  9. Collection의 유용한 메서드
  10. sort
  11. map
  12. forEach
  13. count
  14. filter
  15. any, all, none
  16. 그 외 유용한 함수
'Skils/Kotlin' 카테고리의 다른 글
  • [Kotlin] Data class
  • [Kotlin] - 순열, 조합, 중복순열, 중복조합
  • [Kotlin] - Scope function(apply, run, with, also, let)
  • [Kotlin]-정규표현식
재한
재한
안녕하세요 💻
짜이한안녕하세요 💻
재한
짜이한
전체
오늘
어제
  • 분류 전체보기 (504)
    • Skils (118)
      • Android (52)
      • C++ (5)
      • Kotlin (36)
      • Algorithm (24)
      • Server (1)
    • CodingTest (228)
      • Programmers (45)
      • Baekjoon (183)
    • Experience (8)
      • 후기(코딩테스트,프로그램,프로젝트) (8)
    • Computer Science (70)
      • Design Pattern (2)
      • OOP (2)
      • Computer Architecture (14)
      • OS (2)
      • Software Engineering (3)
      • DataBase (8)
      • Network (39)
    • 학교 (75)
      • R프로그래밍 (26)
      • 회계와 사회생활 (17)
      • 컴퓨터학개론 (20)
      • it기술경영개론 (12)

블로그 메뉴

  • 홈
  • 태그
  • 카테고리
  • 글쓰기
  • 설정

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
재한
[Kotlin] - Collection
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.