[Kotlin ๊ธฐ์ดˆ] ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ๋ฐฐ์—ด๊ณผ ์ปฌ๋ ‰์…˜
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

4 ๋ฐฐ์—ด๊ณผ ์ปฌ๋ ‰์…˜

 

  • Int, Double ๋“ฑ: ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์ €์žฅ
  • ๋ฐฐ์—ด(Array), ์ปฌ๋ ‰์…˜(Collection - List, Map, Set) : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ์ €์žฅ

 

 

๋ฐฐ์—ด (Array)

 

var ๋ณ€์ˆ˜ = Array(๊ฐœ์ˆ˜)

๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ ์˜ˆ์‹œ
var Array = intArrayOf()
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์ž๋ฃŒํ˜•
  • ๋จผ์ € ๋ฐฐ์—ด ๊ณต๊ฐ„์˜ ๊ฐœ์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜, ์ดˆ๊ธฐํ™” ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋‘๋ฉด ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •
  • ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•ด ๋†“๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ์ค‘๊ฐ„์— ๊ฐœ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Œ

 

var students = IntArray(10)  //๋ณ€์ˆ˜ students์— Int(์ •์ˆ˜ํ˜•)๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ 10๊ฐœ ํ• ๋‹น
var longArray = LongArray(10)
var CharArray = CharArray(10)
var FloatArray = FloatArray(10)
var DoubleArray = DoubleArray(10)
  • ๋ฐฐ์—ด ๊ฐ์ฒด๋Š” Int, Long, Char ๋“ฑ๊ณผ ๊ฐ™์€ ํƒ€์ž… ๋’ค์— Array๋ฅผ ๋ถ™์—ฌ์„œ ๋งŒ๋“ฆ
  • ์ปดํ“จํ„ฐ๋Š” 0์ด ์ฒซ๋ฒˆ์งธ ์ด๋ฏ€๋กœ, 10๊ฐœ์˜ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค(Index)๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 9์—์„œ ๋๋‚จ
  • ์ธ๋ฑ์Šค(Index): ๋ฐฐ์—ด์˜ ๊ฐ ๋ช‡ ๋ฒˆ์งธ์˜ ๊ณต๊ฐ„์„ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ์‚ฌ์šฉ
    (์ปดํ“จํ„ฐ์˜ ์‹œ์ž‘์ด 0๊ณผ 1๋กœ ๋งŒ๋“ค์–ด์ง„ ํ•˜๋“œ์›จ์–ด์ด๊ณ  ์ˆ˜์˜ ํ‘œํ˜„์„ 2์ง„์ˆ˜(Binary)๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์…ˆ์˜ ์‹œ์ž‘์„ 1๋ถ€ํ„ฐ ํ–ˆ์„ ๋•Œ์™€ 0๋ถ€ํ„ฐ ํ–ˆ์„ ๋•Œ, ๊ทธ ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ํ‘œํ˜„ ๋ฒ”์œ„์— ํฐ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค๋Š” ๊ฒƒ์— ๊ธฐ์ธํ–ˆ๋‹ค๋Š” ๊ฒฌํ•ด)

 

 

๋ฌธ์ž ๋ฐฐ์—ด์— ๋นˆ ๊ณต๊ฐ„ ํ• ๋‹นํ•˜๊ธฐ

 

var stringArray = Array(10, { item -> "" } )
  • String์€ Int, Double ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ํƒ€์ž…์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, StringArray๋Š” ์—†์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ด„ํ˜ธ ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์ธ 10๋งŒ ๋ณ€๊ฒฝํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ์ˆซ์ž๋งŒํผ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋œ ๋ฐฐ์—ด ๊ณต๊ฐ„์„ ํ• ๋‹น

 

 

๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ๊ณต๊ฐ„ ํ• ๋‹นํ•˜๊ธฐ

 

var dayArray = arrayOf("MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN")
  • arrayOf ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ String ๊ฐ’์„ ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Œ

 

 

๋ฐฐ์—ด์— ๊ฐ’ ์ž…๋ ฅํ•˜๊ธฐ

 

๋ฐฐ์—ด๋ช…[์ธ๋ฑ์Šค] = ๊ฐ’
student[0] = 90

// ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ช… ๋’ค์— ๋Œ€๊ด„ํ˜ธ [ ] ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , 
// [ ] ์•ˆ์— ๊ฐ’์„ ์ €์žฅํ•  ์œ„์น˜์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž‘์„ฑํ•ฉ
// ๋“ฑํ˜ธ(=)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ์ž…๋ ฅ

 

๋ฐฐ์—ด๋ช….set(์ธ๋ฑ์Šค, ๊ฐ’)
students.set(3, 90)

// set ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
// ๋ฐฐ์—ด์ด ์ œ๊ณตํ•˜๋Š” set ํ•จ์ˆ˜์— ์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์คŒ

 

 

๐Ÿ’ก๋ฐฐ์—ด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ธ๋ฑ์Šค์— ๊ฐ’์„ ๋„ฃ์„ ๊ฒฝ์šฐ

var intArray = IntArray(10)
intArray[10] = 100 // Exception ๋ฐœ์ƒ. intArray์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋Š” 9์ž…๋‹ˆ๋‹ค.
โ€‹
--> ArrayIndexOutOfBoundsException ๋ฐœ์ƒ
  • 10๊ฐœ์˜ ๊ณต๊ฐ„์ด ํ• ๋‹น๋œ ๋ฐฐ์—ด์—์„œ ์—ดํ•œ ๋ฒˆ์งธ์— ํ•ด๋‹นํ•˜๋Š” 10๋ฒˆ ์ธ๋ฑ์Šค์— ๊ฐ’์„ ๋„ฃ์œผ๋ ค๊ณ  ํ•  ๋•Œ
  • ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„ฐ๋‹ค๋Š” Exception์ด ๋ฐœ์ƒํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋จ

 

 

 

๋ฐฐ์—ด์— ์žˆ๋Š” ๊ฐ’ ๊บผ๋‚ด๊ธฐ

 

๋ฐฐ์—ด๋ช…[์ธ๋ฑ์Šค]
๋ฐฐ์—ด๋ช….get(์ธ๋ฑ์Šค)

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

// ์ €์žฅํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 
// 1. ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์ธ๋ฑ์Šค๋ฅผ ์ž…๋ ฅํ•ด์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ 
// 2. get()์„ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ

 

 

 

์ปฌ๋ ‰์…˜ (Collection)

 

  • = ๋™์  ๋ฐฐ์—ด
  • ๋ฐฐ์—ด๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์ฒ˜์Œ ํฌ๊ธฐ๋กœ ๊ณ ์ •ํ•˜์ง€ ์•Š๊ณ  ์ž„์˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ
  • ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋ฆฌ์ŠคํŠธ(List), ๋งต(Map), ์…‹(Set)

 

 

๋ฆฌ์ŠคํŠธ(List)

 

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

๋นˆ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ์˜ˆ์‹œ
var List = ArrayList<Int>()
  • ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค๋ฅผ ๋ถ€์—ฌํ•œ ์ปฌ๋ ‰์…˜์ด๋ฉฐ ์ค‘๋ณต๋œ ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Œ
  • Kotlin์—์„œ ๋™์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜• ์•ž์— ๋ฎคํ„ฐ๋ธ”(Mutable)์ด๋ผ๋Š” ์ ‘๋‘์–ด(Prefix)๊ฐ€ ๋ถ™์Œ
    (์˜ˆ๋ฅผ ๋“ค๋ฉด mutableList, mutableMap, mutableSet์ด ์žˆ์Œ)
  • ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด '๋ฐ์ดํ„ฐ ํƒ€์ž…Of' ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ’ก๋ฎคํ„ฐ๋ธ”์ด๋ž€?

  • ๋ฎคํ„ฐ๋ธ”(Mutable): ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ผ๋Š” ์˜๋ฏธ
  • Kotlin์€ ์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์„ค๊ณ„ํ•  ๋•Œ ๋ชจ๋‘ ์ด๋ฎคํ„ฐ๋ธ”(Immutable: ๋ณ€ํ•  ์ˆ˜ ์—†๋Š”)๋กœ ์„ค๊ณ„ํ•จ
  • ๊ธฐ๋ณธ ์ปฌ๋ ‰์…˜์ธ ๋ฆฌ์ŠคํŠธ(List), ๋งต(Map), ์…‹(Set)์€ ๋ชจ๋‘ ํ•œ ๋ฒˆ ์ž…๋ ฅ๋œ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ
  • ๊ทธ๋ž˜์„œ ์ปฌ๋ ‰์…˜์˜ ์›๋ž˜ ์šฉ๋„์ธ ๋™์  ๋ฐฐ์—ด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฎคํ„ฐ๋ธ”๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ

 

 

 

๋ฆฌ์ŠคํŠธ ์ƒ์„ฑํ•˜๊ธฐ: mutableListOf

 

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

// ๋ณ€์ˆ˜์— "MON", "TUE", "WED" 3๊ฐœ์˜ ๊ฐ’์„ ๊ฐ€์ง„ ํฌ๊ธฐ๊ฐ€ 3์ธ ๋™์  ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ

 

 

 

๋ฆฌ์ŠคํŠธ์— ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ธฐ: add

 

mutableList.add("THU")
  • ๊ฐ’์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ ๋™์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ๊ณต๊ฐ„์ด ์ž๋™์œผ๋กœ ์ฆ๊ฐ€
  • add ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅ๋  ์œ„์น˜์ธ ์ธ๋ฑ์Šค๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„๋„, ์ž…๋ ฅ๋˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์ง€์ •

 

 

 

๋ฆฌ์ŠคํŠธ์— ์ž…๋ ฅ๋œ ๊ฐ’ ์‚ฌ์šฉํ•˜๊ธฐ: get

 

var variable = mutableList.get(1)
  • ์ž…๋ ฅ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•ด์„œ ๋ช‡ ๋ฒˆ์งธ ๊ฐ’์„ ๊บผ๋‚ผ ๊ฒƒ์ธ์ง€ ๋ช…์‹œํ•ด์•ผ ํ•จ

 

 

 

๋ฆฌ์ŠคํŠธ๊ฐ’ ์ˆ˜์ •ํ•˜๊ธฐ: set

 

mutalbeList.set(1, "์ˆ˜์ •ํ•  ๊ฐ’")

// Setํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ์ˆ˜์ •

 

 

 

๋ฆฌ์ŠคํŠธ์— ์ž…๋ ฅ๋œ ๊ฐ’ ์ œ๊ฑฐํ•˜๊ธฐ: removeAt

 

mutableList.removeAt(1)
  • removeAt ํ•จ์ˆ˜๋กœ ๋ฆฌ์ŠคํŠธ์— ์ž…๋ ฅ๋œ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ญ์ œ
  • ๋‘ ๋ฒˆ์งธ ๊ฐ’์„ ์‚ญ์ œํ•˜๋ฉด ์„ธ ๋ฒˆ์งธ ๊ฐ’๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๊ฐ€ ํ•˜๋‚˜์”ฉ ๊ฐ์†Œํ•˜๋ฉด์„œ ๋นˆ์ž๋ฆฌ์˜ ์ธ๋ฑ์Šค๋กœ ์ด๋™
    "MON": [0], "TUE": [1], "WED": [2]    -->    "MON": [0], "WED": [1]
    "TUE"๊ฐ€ ์‚ญ์ œ๋˜๋ฉด์„œ 3๋ฒˆ ์งธ ๊ฐ’์ธ "WED"์˜ ์ธ๋ฑ์Šค๋Š” 2์—์„œ 1๋กœ ๋ฐ”๋€œ

 

 

๋นˆ ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉํ•˜๊ธฐ: mutabelListOf<ํƒ€์ž…>()

 

var ๋ณ€์ˆ˜๋ช… = mutableListOf<์ปฌ๋ ‰์…˜์— ์ž…๋ ฅ๋  ๊ฐ’์˜ ํƒ€์ž…>()
var stringList = mutableListOf<String>()


// ์ƒ์„ฑ
var stringList = mutableListOf<String>()
โ€‹
// ์ž…๋ ฅ
stringList.add("์›”")
stringList.add("ํ™”")
โ€‹
// ์‚ฌ์šฉ
Log.d("Collection", "stringList์— ์ž…๋ ฅ๋œ ๋‘ ๋ฒˆ์งธ ๊ฐ’์€ ${stringList.get(1)}์ž…๋‹ˆ๋‹ค.")
โ€‹
// ์ˆ˜์ •
stringList.set(1, "์ˆ˜์ •๋œ ๊ฐ’")
โ€‹
// ์‚ญ์ œ
stringList.removeAt(1) // ๋‘ ๋ฒˆ์งธ ๊ฐ’์ด ์‚ญ์ œ ๋ฉ๋‹ˆ๋‹ค.
  • ๋นˆ ๋ฆฌ์ŠคํŠธ๋Š” ์•ž์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์˜ ํƒ€์ž…์„ ์ถ”๋ก ํ•  ์ˆ˜ ์—†์Œ
  • ๋”ฐ๋ผ์„œ ๋นˆ ์ปฌ๋ ‰์…˜์˜ ๊ฒฝ์šฐ '๋ฐ์ดํ„ฐ ํƒ€์ž…Of'๋งŒ์œผ๋กœ๋Š” ์ƒ์„ฑ๋˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ <>๋กœ ์ง์ ‘์ ์œผ๋กœ ์•Œ๋ ค์ค˜์•ผ ํ•จ

 


๐Ÿ’ก ์ œ๋„ค๋ฆญ(Generic)

  • < > ๊ด„ํ˜ธ์˜ ์ •์‹ ๋ช…์นญ์€ ์ œ๋„ค๋ฆญ
  • ์ปฌ๋ ‰์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์˜ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Kotlin์—์„œ ์ปฌ๋ ‰์…˜์€ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
  • ๋‹จ, ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ๋Š” ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์œผ๋กœ ํƒ€์ž…์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋„ค๋ฆญ์„ ์“ฐ์ง€ ์•Š์•„๋„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

์ปฌ๋ ‰์…˜ ๊ฐœ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ: size

 

mutableList.size
  • size ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปฌ๋ ‰์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ
  • set, get ๋“ฑ์€ 'ํ•จ์ˆ˜'๋ผ๊ณ  ํ•˜๊ณ , size๋Š” 'ํ”„๋กœํผํ‹ฐ'๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉ
  • ์ด ๋‘˜์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ด„ํ˜ธ์˜ ์œ ๋ฌด
    - ๊ด„ํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉด ํ•จ์ˆ˜
    - ๊ด„ํ˜ธ๊ฐ€ ์—†์œผ๋ฉด ํ”„๋กœํผํ‹ฐ

 

 

 

์…‹ (Set)

 

var set = mutableListOf<String>()

String ํƒ€์ž…์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ
  • ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฆฌ์ŠคํŠธ
  • ๋ฆฌ์ŠคํŠธ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ์ด์ง€๋งŒ ์ธ๋ฑ์Šค๋กœ ์กฐํšŒํ•  ์ˆ˜ ์—†๊ณ , get ํ•จ์ˆ˜๋„ ์ง€์›ํ•˜์ง€ ์•Š์Œ
  • ๋”ฐ๋ผ์„œ ์…‹์˜ ๊ฐ’ ์ธ๋ฑ์‹ฑ ๋ถˆ๊ฐ€: ํŠน์ • ์œ„์น˜์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 

 

๋นˆ ์…‹์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๊ฐ’ ์ž…๋ ฅํ•˜๊ธฐ

 

var set = mutableSetOf<String>()
set.add("JAN")
set.add("FEB")
set.add("MAR")
set.add("JAN") // ๋™์ผํ•œ ๊ฐ’์€ ์ž…๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์…‹์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋„ค ๋ฒˆ์งธ ์ค„์—์„œ ์ž…๋ ฅํ•œ "JAN"์€ ์ž…๋ ฅ๋˜์ง€ ์•Š์Œ

 

 

์…‹์˜ ๊ฐ’ ์‚ญ์ œํ•˜๊ธฐ

 

set.remove("FEB")
  • ์…‹์€ ๊ฐ’์ด ์ค‘๋ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•˜์—ฌ ์‚ญ์ œํ•ด์•ผ ํ•จ

 

 

 

๋งต(Map)

 

var map = mutableMapOf<String, String>()

// ํ‚ค์™€ ๊ฐ’์˜ ํƒ€์ž…์„ ๋ชจ๋‘ String์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์„ฑ ์˜ˆ์ œ
  • ํ‚ค(Key)์™€ ๊ฐ’(Value)์˜ ์Œ์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ์ปฌ๋ ‰์…˜
  • ๋งต์˜ ํ‚ค๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค์™€ ๋น„์Šทํ•œ๋ฐ ๋งต์—์„œ๋Š” ํ‚ค๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด์•ผ ํ•จ
    (์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๋ฅผ ์ง์ ‘ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ)
  • ์ œ๋„ค๋ฆญ<>์œผ๋กœ ํ‚ค์™€ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ๋งต์„ ์ƒ์„ฑ

 

 

๋นˆ ๋งต์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ธฐ : put

 

var map = mutableMapOf<String, String>()
map.put("key1", "value2")
map.put("key2", "value2")
map.put("key3", "value3")
  • ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋งต์—์„œ ์ œ๊ณต๋˜๋Š” put ํ•จ์ˆ˜์— ํ‚ค์™€ ๊ฐ’์„ ์ž…๋ ฅ
  • ํ‚ค์™€ ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ๋งต์˜ ๊ณต๊ฐ„์ด ๋Š˜์–ด๋‚จ

 

 

๋งต ์‚ฌ์šฉํ•˜๊ธฐ : get("ํ‚ค์ด๋ฆ„")

 

Log.d("CollectionMap", "map์— ์ž…๋ ฅ๋œ key1์˜ ๊ฐ’์€ ${map.get("key1")}์ž…๋‹ˆ๋‹ค.")
โ€‹
// [๋กœ๊ทธ์บฃ ์ถœ๋ ฅ ๋‚ด์šฉ]
// map์— ์ž…๋ ฅ๋œ key1์˜ ๊ฐ’์€ value2์ž…๋‹ˆ๋‹ค.
  • get ํ•จ์ˆ˜์— ํ‚ค๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด์„œ ๊ฐ’์„ ๊บผ๋ƒ„

 

 

๋งต ์ˆ˜์ •ํ•˜๊ธฐ : put

 

map.put("key2", "์ˆ˜์ •")
  • put ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋™์ผํ•œ ํ‚ค๋ฅผ ๊ฐ€์ง„ ๊ฐ’์ด ์žˆ์œผ๋ฉด ํ‚ค๋Š” ์œ ์ง€๋œ ์ฑ„๋กœ ๊ทธ ๊ฐ’๋งŒ ์ˆ˜์ •

 

 

๋งต ์‚ญ์ œํ•˜๊ธฐ : remove

 

map.remove("key2")
  • remove ํ•จ์ˆ˜์— ํ‚ค๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด์„œ ๊ฐ’์„ ์‚ญ์ œ
    (cf. ๋ฆฌ์ŠคํŠธ์—์„  ์ธ๋ฑ์Šค๋กœ ์‚ญ์ œํ–ˆ์œผ๋ฉฐ, removeAt ์‚ฌ์šฉ)
  • ๋ฆฌ์ŠคํŠธ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์œ ์ง€

 

 

๐Ÿ’ก ์ปฌ๋ ‰์…˜ ๊ฐ’์˜ ๋‹จ์œ„ = ์—˜๋ฆฌ๋จผํŠธ

  • ์ปฌ๋ ‰์…˜์— ์ž…๋ ฅ๋˜๋Š” ๊ฐ’ ๊ฐ๊ฐ = ์—˜๋ฆฌ๋จผํŠธ(Element)
  • ๋งต์„ ์ง€์นญํ•  ๋•Œ ๋งต์˜ ๊ฐ’(์—˜๋ฆฌ๋จผํŠธ ์ž์ฒด)์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฑด์ง€ ์—˜๋ฆฌ๋จผํŠธ์˜ ๊ฐ’(์‹ค์ œ ๊ฐ’)์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฑด์ง€, 2๊ฐœ์˜ ์šฉ์–ด๊ฐ€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—˜๋ฆฌ๋จผํŠธ๋ผ๊ณ  ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • ์—˜๋ฆฌ๋จผํŠธ๋Š” ๋งต์˜ ์ž…๋ ฅ ๋‹จ์œ„์ธ ํ‚ค์™€ ๊ฐ’์„ ํ•ฉ์นœ ๊ฒƒ์„ ๋งํ•˜๋Š”๋ฐ ์ด๊ฒƒ์€ ๋ฆฌ์ŠคํŠธ์™€ ์…‹์—์„œ๋„ ๋™์ผํ•œ ์šฉ์–ด๋กœ ์‚ฌ์šฉ๋จ
  • ๋ฆฌ์ŠคํŠธ ์—˜๋ฆฌ๋จผํŠธ = ๋ฆฌ์ŠคํŠธ์˜ (๊ฐ’)
    ๋งต ์—˜๋ฆฌ๋จผํŠธ = ๋งต์˜ (ํ‚ค์™€ ๊ฐ’)

 

 

 

์ด๋ฎคํ„ฐ๋ธ” ์ปฌ๋ ‰์…˜(Immutable Collection)

 

var list = listOf("1", "2")

var immutableList = listOf("JAN", "FEB", "MAR") // ์ƒ์„ฑ
Log.d("Collection", "๋ฆฌ์ŠคํŠธ์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’์€ ${immtuableList.get(1)}์ž…๋‹ˆ๋‹ค.) // ์‚ฌ์šฉ

// [๋กœ๊ทธ์บฃ ์ถœ๋ ฅ ๋‚ด์šฉ]
// ๋ฆฌ์ŠคํŠธ์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’์€ FEB์ž…๋‹ˆ๋‹ค.
  • Kotlin์€ ์ผ๋ฐ˜ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉด์„œ ๊ฐ’ ๋˜ํ•œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ด๋ฎคํ„ฐ๋ธ” ์ปฌ๋ ‰์…˜์„ ์ง€์›
  • ์ด๋ฎคํ„ฐ๋ธ” ์ปฌ๋ ‰์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ธฐ์กด ์ปฌ๋ ‰์…˜์—์„œ mutable ์ด๋ผ๋Š” ์ ‘๋‘์–ด๊ฐ€ ์ œ๊ฑฐ๋œ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ
  • ๋ถˆ๋ณ€ํ˜• ์ปฌ๋ ‰์…˜์€ ํ•œ ๋ฒˆ ์ž…๋ ฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— add๋‚˜ set ํ•จ์ˆ˜๋Š” ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ์ตœ์ดˆ ์ž…๋ ฅ๋œ ๊ฐ’๋งŒ์„ '์‚ฌ์šฉ'
  • ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅธ ์ ์€ ํฌ๊ธฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ’์˜ ๋ณ€๊ฒฝ ๋˜ํ•œ ๋ถˆ๊ฐ€๋Šฅ
  • ๋ถˆ๋ณ€ํ˜• ์ปฌ๋ ‰์…˜์€ ์ˆ˜์ •, ์ถ”๊ฐ€, ์ œ๊ฑฐ ๋ชจ๋‘ ์•ˆ ๋จ

 

๐Ÿ’ก ์ด๋ฎคํ„ฐ๋ธ” ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ์ผ๋ฐ˜ ๋ณ€์ˆ˜ var์™€ ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜ val์˜ ๊ด€๊ณ„์—๊ฒŒ ๊ทธ ์‚ฌ์šฉ๋ฒ•์„ ์œ ์ถ”
  • (1) ๊ธฐ์ค€์ด ๋˜๋Š” ์–ด๋–ค ๊ฐ’์˜ ๋ชจ์Œ์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ๊ฑฐ๋‚˜
  • (2) ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ์ค‘๊ฐ„์— ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ด๋ฎคํ„ฐ๋ธ” ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉ
  • ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ์š”์ผ ๋ฐ์ดํ„ฐ
    ์š”์ผ์„ ์ด๋ฎคํ„ฐ๋ธ” ๋ฆฌ์ŠคํŠธ๋กœ ์„ ์–ธํ•˜๋ฉด ์ค‘๊ฐ„์— ๋ฐ”๋€Œ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† ๊ฐ™์€ ๊ฐ’์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์‚ฌ์šฉ
    var dayList = listOf("์›”", "ํ™”", "์ˆ˜", "๋ชฉ", "๊ธˆ", "ํ† ", "์ผ)

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T