Swift/๊ธฐ๋ณธ ๋ฌธ๋ฒ•

Swift - Array

yeggrrr๐Ÿผ 2024. 2. 25. 16:39
728x90

 


Array


'๋ฌด์–ธ๊ฐ€๋ฅผ ๋‹ด๋Š” ํ†ต'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
array๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ํ†ต์— ๋‹ด์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

์ด ํ†ต์— ๋‹ด๋Š” ๋ณ€์ˆ˜๋“ค์€ 'element'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


array๋Š” ๋‘ ๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.


โ‘  ํ†ต์— ๋‹ด์„ ๋•Œ๋Š” ๊ฐ™์€ ํƒ€์ž…์„ ๋‹ด์•„์•ผ ํ•œ๋‹ค.
(ex. Int๋ผ๋ฆฌ, String๋ผ๋ฆฌ ...)

โ‘ก ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
array ์† element๋“ค์˜ ์ˆœ๋ฒˆ์ด ์กด์žฌํ•œ๋‹ค.
์ด ์ˆœ๋ฒˆ์„ Index๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
(Index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ Index๋Š” (์ „์ฒด ๊ฐฏ์ˆ˜ - 1)๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.)

 



Q. array๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ• ๊นŒ? ๐Ÿค”

โ‘  ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” item
โ‘ก item์˜ ์ˆœ์„œ๋ฅผ ์•Œ๋ฉด ์œ ์šฉํ•  ๋•Œ



๊ทธ๋Ÿผ ์ด์ œ๋ถ€ํ„ฐ array๋ฅผ ์–ด๋–ป๊ฒŒ swift๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ• ์ง€ ์•Œ์•„๋ณด์ž!! :-)


< array ๋งŒ๋“ค๊ธฐ, ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ >


array๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์œ„์™€ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

โ‘  var arrayA: [type] = [1, 2, 3, 4, โˆ™โˆ™โˆ™]
โ‘ก var arrayB: Array<type> = [1, 2, 3, 4, โˆ™โˆ™โˆ™]
( → โ‘ , โ‘ก ๋‘˜๋‹ค append๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด let์„ var๋กœ ๋ฐ”๊ฟˆ. )


์š”์†Œ ์ถ”๊ฐ€๋Š” ์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.



< isEmpty ์‚ฌ์šฉ >

array ์†์— element๊ฐ€ ์žˆ๋Š”์ง€, ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.


ํ˜„์žฌ [2, 4, 6, 8]์—์„œ
append๋กœ [10]์„ ์ถ”๊ฐ€ํ•˜๊ณ ,
[12, 14, 16]์„ ์ถ”๊ฐ€ํ•œ ์ƒํƒœ์ด๋‹ค.

๊ทธ๋ž˜์„œ evenNumbers์—๋Š” [2, 4, 6, 8, 10, 12, 14, 16]์ด ์žˆ์œผ๋ฏ€๋กœ,
isEmpty์˜ ๊ฒฐ๊ณผ๋กœ false๊ฐ€ ๋‚˜์™”๋‹ค.

๋งŒ์•ฝ, evenNumbers = [ ] ์ด๋ ‡๊ฒŒ ๋น„์›Œ๋‘๊ณ ,
evenNumbers.isEmpty๋ฅผ ํ–ˆ๋‹ค๋ฉด,
๊ฒฐ๊ณผ๋Š” true๊ฐ€ ๋‚˜์™”์„ ๊ฒƒ์ด๋‹ค.



< ์š”์†Œ ๊ฐฏ์ˆ˜ ํ™•์ธํ•˜๊ธฐ>

evenNumbers.count
→ ๊ฒฐ๊ณผ: 8



< ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ >


์œ„์™€ ๊ฐ™์ด ํ”„๋ฆฐํŠธํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์˜ต์…”๋„๋กœ ๋‚˜์˜จ๋‹ค.

๊ทธ ์ด์œ ๋Š”
array ํ†ต์˜ ์ž…์žฅ์—์„œ๋Š” item์ด ์ฑ„์›Œ์ ธ ์žˆ์„ ๋•Œ๋Š”
์ฒซ ๋ฒˆ์งธ item์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ,
๋งŒ์•ฝ ๋น„์–ด์ ธ ์žˆ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด first ์†์„ฑ์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , ์—†์„ ์ˆ˜๋„ ์žˆ๊ธฐ์— ์˜ต์…”๋„๋กœ ํ‘œํ˜„๋œ๋‹ค.




< ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ >

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ item์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” ์˜ต์…”๋„์ด๊ธฐ ๋•Œ๋ฌธ์—
์•„๋ž˜์™€ ๊ฐ™์ด ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

 



< min, max, ... >

evenNumber ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ์ˆซ์ž๋“ค์ด ์žˆ๋‹ค.
์ด์— ์ œ๊ณต๋˜๋Š” method๊ฐ€ ์žˆ๋‹ค.


์ด๋ ‡๊ฒŒ array ์† ์š”์†Œ๋“ค ์ค‘์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.




< ํŠน์ • Index ๊ฐ’์— ์ ‘๊ทผํ•˜๊ธฐ >

์œ„์™€ ๊ฐ™์ด ํŠน์ • Index ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
[0]์€ ์ฒซ ๋ฒˆ์งธ, [1]์€ ๋‘ ๋ฒˆ์งธ, [2]์€ ์„ธ ๋ฒˆ์งธ, โˆ™โˆ™โˆ™



๋งŒ์•ฝ, ์กด์žฌํ•˜์ง€ ์•Š๋Š” Index ๊ฐ’์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?


var twentithElement = evenNumbers[19]
๋ฅผ ํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


์ด๋ ‡๊ฒŒ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค๋ฅผ ์š”์ฒญํ•˜๋ฉด,
์ด๋Ÿฌํ•œ 'Index out of range'๋ผ๋Š” error๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ,
์‹ค์ œ๋กœ ์•ฑ์—์„œ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๊ทธ ์•ฑ์„ ์ฃฝ๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ Index๋ฅผ ์ด์šฉํ•ด์„œ element์— ์ ‘๊ทผํ•  ๋•Œ๋Š” Index๋ฅผ ์ž˜ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.




< ์•ž์—์„œ 3๊ฐœ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ >
& < ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ >

์œ„์™€ ๊ฐ™์ด
[Index ๋ฒˆํ˜ธ...Index ๋ฒˆํ˜ธ]๋ฅผ ์ด์šฉํ•ด์„œ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.


๊ทธ๋ฆฌ๊ณ 
array์ด๋ฆ„.contains(์š”์†Œ)
๋กœ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

evenNumbers = [2, 4, 6, 10, 12, 14, 16] ์ด๊ธฐ ๋•Œ๋ฌธ์—
3์€ false, 4๋Š” true๊ฐ€ ๋‚˜์˜จ ๊ฒƒ์ด๋‹ค.




< ํŠน์ • ์œ„์น˜์— ์š”์†Œ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐํ•˜๊ธฐ>

< ํŠน์ • ์œ„์น˜์— ์ถ”๊ฐ€ >
array์ด๋ฆ„.insert(์ถ”๊ฐ€ํ•  element, at: ๋„ฃ์„ Index ๋ฒˆํ˜ธ)

< ๋ชจ๋‘ ์ œ๊ฑฐ >
array์ด๋ฆ„.removerAll( )

< ํŠน์ • ์œ„์น˜๋งŒ ์ œ๊ฑฐ >
array์ด๋ฆ„.remove(at: ํ•ด๋‹น Index ๋ฒˆํ˜ธ)




< ํŠน์ • ์š”์†Œ ๊ฐ’ ๋ณ€๊ฒฝ ๋ฐ swap >





< for๋ฌธ ํ™œ์šฉ >

array ์•ˆ์— ์žˆ๋Š” element๋“ค์„ ํ•œ๋ฐ”ํ€ด ๋Œ๋ฉด์„œ
์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”
์•„๋ž˜์™€ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.


๋งŒ์•ฝ ์œ„ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด์„œ Index๋„ ํ•จ๊ป˜ ํ•„์š”ํ•˜๋‹ค๋ฉด?

์œ„์™€ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.













 

 

 

 

728x90

'Swift > ๊ธฐ๋ณธ ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Swift - Function_์‹ฌํ™”  (0) 2024.02.22
Swift - function  (0) 2024.02.22
Swift - switch(์Šค์œ„์น˜)  (0) 2024.02.21
Swift - Flow Control  (0) 2024.02.21
Swift - Scope(์Šค์ฝฅ)  (0) 2024.02.20