[Kotlin공부]코틀린문법정리 : 03 배열과 컬렉션

2021. 2. 6. 17:29프로그래밍 언어/Kotlin 기초

728x90
반응형

3.1 배열

  • 여러 개의 값을 담을 수 있는 대표적인 자료형
  • 값을 담기 전에 먼저 배열 공간의 개수를 할당하거나 초기화 시에 데이터를 저장해두면 데이터의 개수만큼 배열의 크기가 결정됨
  • 먼저 개수를 정해놓고 사용해야 하며 중간에 개수를 추가하거나 제거할 수 없음

선언형태

var 변수 = Array(개수)

var students = IntArray(10)
var longArray = LongArray(10)
var CharArray = CharArray(10)
var FloatArray = FloatArray(10)
var DoubleArray = DoubleArray(10)

문자 배열에 빈 공간 할당하기

String은 기본 타입이 아니기 때문에 StringArray는 없지만 아래와 같이 사용 가능

var stringArray = Array(10, {item->""})

값으로 배열 공간 할당하기

var dayArray = arrayOf("MON","TUE","WED","THU","FRI","SAT","SUN")
println(dayArray[0]+"\n")
*** 출력결과 ***

MON

배열에 값 입력하기

배열명[인덱스] = 값
배열명.set(인덱스, 값)

students[0] = 90	// 배열명[인덱스] = 값
students.set(1,91)	// 배열명.set(인덱스,값)
students.set(2,92)
students.set(3,93)
students.set(4,94)
students.set(5,95)
students.set(6,96)
students.set(7,97)
students.set(8,98)
students[9] = 99

println("students[0] : " + students[0])
println("students[1] : " + students[1])
println("students[2] : " + students[2])
println("students[3] : " + students[3])
println("students[4] : " + students[4])
println("students[5] : " + students[5])
println("students[6] : " + students[6])
println("students[7] : " + students[7])
println("students[8] : " + students[8])
println("students[9] : " + students[9]+"\n")
var dayArray = arrayOf("MON","TUE","WED","THU","FRI","SAT","SUN")
println(dayArray[0]+"\n")
*** 출력결과 *** 

students[0] : 90
students[1] : 91
students[2] : 92
students[3] : 93
students[4] : 94
students[5] : 95
students[6] : 96
students[7] : 97
students[8] : 98
students[9] : 99

배열에 있는 값 꺼내기

배열명[인덱스]

배열명.get(인덱스)

var seventhValue = students[6]
var tenthValue = students.get(9)

println("seventhValue : " + seventhValue)
println("tenthValue : " + tenthValue)
*** 출력결과 ***

seventhValue : 96
tenthValue : 99

 

 

3.2 컬렉션

  • 다른 이름으로 동적 배열이라 부름
  • 배열과는 다르게 공간의 크기를 처음 크기로 고정하지 않고 임의의 개수를 담음
  • 리스트(List), 맵(Map), 셋(Set)

리스트(List)

  • 저장되는 데이터에 인덱스를 부여한 컬렉션
  • 중복된 값 입력 가능
  • 코틀린에서는 동적으로 리스트를 사용하기 위해서는 자료형 앞에 뮤터블(Mutable)이라는 접두어 필요
  • mutableList, mutableMap, mutableSet

리스트 생성하기 : mutableListOf

var list = mutableListOf("MON","TUE","WED")

리스트 값 추가하기 : add

list.add("THU")

리스트에 입력된 값 사용하기 : get

var variable = list.get(1)

리스트값 수정하기 : set

list.set(1, "0")  // mutableList.set(인덱스, 수정할값)

리스트에 입력된 값 제거하기 : removeAt

list.removeAt(0)

빈 리스트 사용하기

var 변수명 = mutableListOf<컬렉션에 입력될 값의 타입>()

var emptyList = mutableListOf<Int>()
var stringList = mutableListOf<String>()
// 생성
var stringList = mutableListOf<String() // 문자열로 된 빈 컬렉션을 생성
// 입력
stringList.add("월")
stringList.add("화")
// 사용
println("stringList에 입력된 두 번째  " + stringList.get(1) + "입니다.")
// 수정
stringLlist.set(1,"수정된 값")
// 삭제
stringList.removeAt(1) // 두번째 값이 삭제
*** 출력결과 ***

stringList에 입력된 두 번째  화입니다.

컬렉션 개수 가져오기 : size

mutableList.size

 

셋(Set)

  • 중복을 허용하지 않는 리스트
  • 인덱스로 조회할 수 없고, get 함수도 지원하지 않음
var set = mutableSetOf<String>();

빈 셋으로 초기화하고 값 입력하기

set.add("JAN")
set.add("FEB")
set.add("MAR")
set.add("JAN")  // 동일한 값은 입력되지 않습니다.

셋 삭제하기

set.remove("FEB")

 

맵(Map)

  • 키(Key)와 값(Value)이 쌍으로 입력되는 컬렉션
  • 맵의 키는 리스트의 인덱스와 비슷한데 리스트와는 다르게 키를 직접 입력해야 함
var map = mutableMapOf<String, String>()

빈 맵으로 생성하고 값 추가하기

map.put("키1", "값1")
map.put("키2", "값2")
map.put("키2", "값3")

맵 수정하기

map.put("키2","수정")

맵 삭제하기

map.remove("키2")

 

3.3 이뮤터블 컬렉션

  • 크기를 변경할 수 없으며 값 또한 변경할 수 없음
  • 기준이 되는 어떤 값의 모음을 하나의 변수에 저장할 필요가 있거나 또는 여러 개의 값을 중간에 수정하지 않고 사용할 필요가 있을 때 사용
val IMMUTABLE_LIST = listOf("JAN","FEB","MAR")  // 생성
println("리스트의 두 번째 값은 " + IMMUTABLE_LIST.get(1) + "입니다.")   // 사용
*** 출력결과 ***

리스트의 두 번째 값은 FEB입니다.

 

728x90
반응형