์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ์ปฌ๋ ‰์…˜ (Collection) - Array, Dictionary, Set

๐ŸŽ iOS/Swift

by AHN.Jihyeon 2024. 5. 14. 10:46

๋ณธ๋ฌธ

 


๐Ÿ’ก Swift Collection

Array(๋ฐฐ์—ด) / Dictionary(๋”•์…”๋„ˆ๋ฆฌ) / Set(์ง‘ํ•ฉ)

 => ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋‹ค๋ฃจ๋Š” ํƒ€์ž… 

/* ๐Ÿ“Œ ์ปฌ๋ ‰์…˜ / ๋นˆ ์ปฌ๋ ‰์…˜ ์ƒ์„ฑ */
// 1. ๋ฐฐ์—ด(array)   - ์ˆœ์„œ๊ฐ€ ์žˆ์Œ. ์š”์†Œ ์ค‘๋ณต ๊ฐ€๋Šฅ  ================================
var array1: Array<Int> = [1, 2, 3]    // ์ •๊ทœ ๋ฌธ๋ฒ•
var array2: [Int] = [1, 2, 3]         // ๊ฐ„๋‹จ ๋ฌธ๋ฒ•
var array3 = [1, 2, 3]               // ๋ฆฌํ„ฐ๋Ÿด : ํƒ€์ž…์— ํ•ด๋‹น๋˜๋Š” ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ 

// ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ
var array11: [Int] = []
var array22 = Array<Int>()
var array33 = [Int]()  
                                    

// 2. ๋”•์…”๋„ˆ๋ฆฌ(dictionary)  - ์ˆœ์„œ๊ฐ€ ์—†์Œ. ์š”์†Œ๋Š” hashable. ์š”์†Œ ์ค‘๋ณต ๋ถˆ๊ฐ€ ===========  
var dic1: Dictionary<String, Int> = ["name": 10, "age": 20]     //์ •๊ทœ ๋ฌธ๋ฒ•
var dic2: [String: String] = ["name": "ํ™๊ธธ๋™", "age": "20"]      //๊ฐ„๋‹จ ๋ฌธ๋ฒ•
var dic3 = ["a": "apple", "b": "banana"]                        //๋”•์…”๋„ˆ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด๋กœ ์„ ์–ธ

// ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ
var dic11: Dictionary<String, Int> = [:]      //์ •๊ทœ ๋ฌธ๋ฒ• ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ
var dic22 = Dictionary<String, Int>()         //๋นˆ ๋”•์…”๋„ˆ๋ฆฌ  
var dic33 = [String: String]()                //๊ฐ„๋‹จ ๋ฌธ๋ฒ• ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ


// 3. ์ง‘ํ•ฉ(Set)  - ์ˆœ์„œ๊ฐ€ ์—†์Œ. ์š”์†Œ๋Š” hashable. ์š”์†Œ ์ค‘๋ณต ๋ถˆ๊ฐ€  =================== 
var set1: Set<Int> = [1,3,2,1]       // ์ถœ๋ ฅ : [1, 3, 2] - ์ •๊ทœ ๋ฌธ๋ฒ•  
var set2: Set = [2,3,4,5]            // ์ถœ๋ ฅ : [5, 4, 2, 3] - ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑ

// ๋นˆ ์ง‘ํ•ฉ ์ƒ์„ฑ
var set1: Set<Int> = []
var set22 = Set<Int>()





/* ๋™์‚ฌ์›ํ˜•: ์ปฌ๋ ‰์…˜ ์ง์ ‘ ๋ณ€๊ฒฝ & ~ed : ์›๋ณธ์€ ์œ ์ง€ํ•˜๊ณ  ๋ณต์‚ฌ๋ณธ์„ ๋ณ€๊ฒฝ ํ›„ ๋ฐ˜ํ™˜ 
.sort()      / .sorted()
.reverse()   / .reversed()
.shuffle()   / .shuffled()
*/

 

 

๐Ÿ”Ž  1 . ๋ฐฐ์—ด(Array)


๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋Š” ์š”์†Œ(element)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์š”์†Œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ(index) ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต ๊ฐ€๋Šฅ.

let num1: Array<Int> = [1, 2, 3]    // ์ •๊ทœ ๋ฌธ๋ฒ•
let num2: [Int] = [1, 2, 3]         // ๊ฐ„๋‹จ ๋ฌธ๋ฒ•


// ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ•
var array1: [Int] = []

var array2 = Array<Int>()

var array3 = [Int]()


                                      /* ๋ฆฌํ„ฐ๋Ÿด : ํƒ€์ž…์— ํ•ด๋‹น๋˜๋Š” ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ */
var array = [1, 2, 3]    // [Int] ํƒ€์ž…์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ง์ ‘์ ์ธ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐ์—ด์— ํ• ๋‹น 


/* ์ ‘๊ทผ ์—ฐ์‚ฐ์ž */
// โœ… .count : ๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ๊ฐœ์ˆ˜   ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” .length์™€ ๊ฐ™์€ ์—ญํ•   =======================
array.count        //์ถœ๋ ฅ : 3  


// โœ… .isEmpty : ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธ true/false   ==========================
array.isEmpty     //์ถœ๋ ฅ : false
!array.isEmpty    //์ถœ๋ ฅ : true - !๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ๋’ค์ง‘๋Š”๋‹ค.


// โœ… .contains() : ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜. ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ()์•ˆ์— ๊ฐ’ ์ „๋‹ฌ. true/false ===
array.contains(4)    // ์ถœ๋ ฅ : false
                       

// โœ… .randomElement() : ๋ฐฐ์—ด์—์„œ ์š”์†Œ๋ฅผ ๋žœ๋ค ์ถ”์ถœ  =======================================
array.randomElement()    // ์ถœ๋ ฅ : 1, 2, 3 ์ค‘ ๋žœ๋ค ์ถœ๋ ฅ 


// โœ… .swapAt(index, index)  : ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๋ฐ”๊พผ๋‹ค  ==============================
array.swapAt(0, 1)       // ์ถœ๋ ฅ : [2,1,3]


// โœ… .endIndex - 1   : ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค            =================================
array.endIndex - 1     // ์ถœ๋ ฅ : 3


//์˜ต์…”๋„ ํƒ€์ž…์ด๋ผ ์ข€ ๋” ์•ˆ์ „ํ•œ ํƒ€์ž…
// โœ… .first  / .last   : ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ถ”์ถœ   ===============================
array.firtst       // ์ถœ๋ ฅ : optional(1)     ๋นˆ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ nil์„ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ต์…”๋„ํƒ€์ž…์œผ๋กœ ๊ตฌํ˜„๋จ 
array.last          // ์ถœ๋ ฅ : optional(3)     ๋”ฐ๋ผ์„œ ํ™œ์šฉํ•  ๋•Œ์—๋Š” ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ ํ›„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

 

 

 

โœ… ๋ฐฐ์—ด์˜ ์‚ฝ์ž… / ์‚ญ์ œ / ์ถ”๊ฐ€ 

var num: [Int] = [1, 2, 3]

/* โœ… .insert() : ์ค‘๊ฐ„์— ์‚ฝ์ž… -> ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ  ============================== */
// ๋ฐฐ์—ด์— ์š”์†Œ ์‚ฝ์ž…(1)      
num.insert(4, at: 3)    // ์ถœ๋ ฅ : [1, 2, 3, 4]
num.insert(3, at: 1)    // ์ถœ๋ ฅ : [1, 3, 2, 3, 4]

 
// โœ… ๋ฐฐ์—ด ์š”์†Œ ์‚ฝ์ž…(2) - ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐฐ์—ด ์ž…๋ ฅ 
num.insert(contentsOf: [5, 6], at: 5)    // ์ถœ๋ ฅ : [1, 3, 2, 3, 4, 5, 6]


/* โœ… ๊ต์ฒด    ============================================================== */
// ์ธ๋ฑ์Šค๋กœ ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ [ ]๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค. 
num[0]        // ์ถœ๋ ฅ : 1
num[0] = 7    // [7, 3, 2, 3, 4, 5, 6]

// ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฒ”์œ„๋กœ ๊ต์ฒด 
num[0...1] = [2, 2, 2]    // [2, 2, 2, 3, 4, 5, 6]  

// 21๋ฒˆ ํฌ๋“œ์™€ ๋™์ผํ•œ ํ•จ์ˆ˜ ์ •์‹ ๋ฌธ๋ฒ•
num.replaceSubrange(0...1, with: [1, 2, 3])  // [1, 2, 3, 3, 4, 5, 6]  

// 
num.firstIndex(of: 3)   // ์ถœ๋ ฅ : 2   ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐพ์•˜์„ ๋•Œ ํ•ด๋‹น ๊ฐ’์ด ๋ช‡๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š”์ง€
num.lastIndex(of: 3)    // ์ถœ๋ ฅ : 3   ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฐพ์•˜์„ ๋•Œ ํ•ด๋‹น ๊ฐ’์ด ๋ช‡๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š”์ง€


/* โœ… .append() : ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ ํ•จ์ˆ˜ ====================================== */
num.append(7)                    // [1, 2, 3, 3, 4, 5, 6, 7]  
num.append(contentsOf: [8,9])    // [1, 2, 3, 3, 4, 5, 6, 7, 8, 9]  


/* โœ… .remove() : ์‚ญ์ œ     ================================================= */
num[0...2] = []            // [3, 4, 5, 6, 7, 8, 9]  
num.remove(at: 1)          // [3, 5, 6, 7, 8, 9]  ํ•ด๋‹น index ์š”์†Œ ํ•œ ๊ฐœ ์‚ญ์ œ
num.removeSubrange(0...1)  // [6, 7, 8, 9]        ํ•ด๋‹น ๋ฒ”์œ„ ์š”์†Œ ์‚ญ์ œ

num.removeFirst()          // [7, 8, 9]    ์ œ์ผ ์•ž์— ์žˆ๋Š” ์š”์†Œ ์‚ญ์ œ
num.removeFirst(2)         // [9]          ์•ž์—์„œ๋ถ€ํ„ฐ ๋‘๋ฒˆ์งธ๊นŒ์ง€ ์š”์†Œ ์‚ญ์ œ

num.removeLast()           //              ๋งจ ๋’ค์— ์žˆ๋Š” ์š”์†Œ ์‚ญ์ œ 
num.removeLast(2)          //              ๋งจ ๋’ค์—์„œ ๋‘๋ฒˆ์งธ๊นŒ์ง€ ์š”์†Œ ์‚ญ์ œ 
                           // ๋ฆฌํ„ด๊ฐ’์€ ๋„Œ์˜ต์…”๋„ ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— nil์ผ ๋•Œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ!!! ๋ฐฐ์—ด์ด ๋น„์—ˆ๋Š”์ง€ ์ž˜ ํ™•์ธ 
num.removeAll()                        // ๋ฐฐ์—ด ์š”์†Œ ๋ชจ๋‘ ์‚ญ์ œ
num.removeAll(keepingCapacity: true)   // ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ๋ณด๊ด€

 

 

 

โœ… ๋ฐฐ์—ด์˜ ์ •๋ ฌ 

var nums = [9,1,0,2,3,9,2,5,3]

/* โœ… .sort() ๋ฉ”์„œ๋“œ : ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ    ===================================== */
nums.sort()       // ์ถœ๋ ฅ : [0, 1, 2, 2, 3, 3, 5, 9, 9] - ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ”์„œ ์ •๋ ฌ (๋ฐฐ์—ด ๋ฆฌํ„ด โŒ)
nums.sorted()     // ์ถœ๋ ฅ : [9, 1, 0, 2, 3, 9, 2, 5, 3] 
                  //       ์›๋ณธ ๋ฐฐ์—ด ์ž์ฒด๋Š” ๋ฐ”๋€Œ์ง€ ์•Š์Œ. ์ƒˆ๋กœ์šด ๋ณ€๊ฒฝ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ด. 
 
 
/* โœ… .reversed() ๋ฉ”์„œ๋“œ : ๋’ค์—์„œ๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ   ======================== */
nums.reverse()    // ์ถœ๋ ฅ : [3, 5, 2, 9, 3, 2, 0, 1, 9]
nums.reversed()   // ์ถœ๋ ฅ : [9, 1, 0, 2, 3, 9, 2, 5, 3]


/* โœ… .shuffle() : ๋ฐฐ์—ด ๋žœ๋ค์œผ๋กœ ์ •๋ ฌ    =================================== */
nums.shuffle()
nums.shuffled()

 

 

 

โœ… ๋ฐฐ์—ด์˜ ํ™œ์šฉ 

var happyArray = ["b","a","n","a","n","a"]

if !happyArray.isEmpty {
    print("ํ•ดํ”ผ!!")                 // ์ถœ๋ ฅ : ํ•ดํ”ผ!!
} else {
    print("no return")
}

// ํŠน์ • ์š”์†Œ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ  ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์š”์†Œ ์ง€์šฐ๊ธฐ
if let happy = happyArray.lastIndex(of: "a") {    //๋’ค์—์„œ๋ถ€ํ„ฐ ์ฒซ๋ฒˆ์งธ a์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค : 5
    happyArray.remove(at: happy)                  //์ธ๋ฑ์Šค 5๋ฒˆ์งธ์˜ ์š”์†Œ ์ œ๊ฑฐ
    print(happyArray)              //์ถœ๋ ฅ : ["b", "a", "n", "a", "n"]
} else {
    print("no return2!!!")
}

 

 

 

โœ… ๋ฐฐ์—ด์˜ ์ค‘์ฒฉ

/* ๋ฐฐ์—ด์— ๋ฐฐ์—ด์„ ์š”์†Œ๋กœ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค   ============ */
var array = [[1,2,3], [4,5,6], [2,3,4]]

array[0][2]     // ์ถœ๋ ฅ : 3  - array ๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ [1,2,3]์˜ ์ธ๋ฑ์Šค 2์˜ ์š”์†Œ

 

 

 

 

๐Ÿ”Ž  2. ๋”•์…”๋„ˆ๋ฆฌ(Dictionary)


๋”•์…”๋„ˆ๋ฆฌ์˜ ์š”์†Œ๋Š” key์™€ value์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. 

key ๊ฐ’์€ ์ค‘๋ณต ๋ถˆ๊ฐ€!!

์ˆœ์„œ์˜ ๊ตฌ๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— key ๊ฐ’์€ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค. 

value์—๋Š” ๋ฐฐ์—ด์˜ ํƒ€์ž…๋„ ์ค‘์ฒฉ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. 

/* ๋”•์…”๋„ˆ๋ฆฌ - ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ถœ๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค  ============================== */
var dic1: Dictionary<String, Int> = ["name": 10, "age": 20]           //์ •๊ทœ ๋ฌธ๋ฒ•
var dic2: Dictionary<String, Int> = [:]                               //์ •๊ทœ ๋ฌธ๋ฒ• ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ
var dic3 = Dictionary<String, Int>()                                   //๋นˆ ๋”•์…”๋„ˆ๋ฆฌ  

var dic4: [String: String] = ["name": "ํ™๊ธธ๋™", "age": "20"]            //๊ฐ„๋‹จ ๋ฌธ๋ฒ•
var dic = [String: String]()                                          //๊ฐ„๋‹จ ๋ฌธ๋ฒ• ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ

var dic6 = ["a": "apple", "b": "banan": "c": "orange"]                //๋”•์…”๋„ˆ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด๋กœ ์„ ์–ธ



/* ์ ‘๊ทผ ์—ฐ์‚ฐ์ž   ================================================================= */
// โœ… .count      -> ๋ช‡๊ฐœ์˜ ์Œ์ธ์ง€
// โœ… .isEmpty    -> true/false
// โœ… .randomeElement()    -> ์ถœ๋ ฅ : (key: "name", value: 10)/ named tuple ํ˜•ํƒœ / ์˜ต์…”๋„ ํƒ€์ž…
   if let d = dic1.randomElement(){
   		print(d)            // ์ถœ๋ ฅ : (key: "name", value: 10) , nil์ผ ๋• ์ถœ๋ ฅ ์•ˆ๋จ
   } 

// โœ… .keys       // ์ถœ๋ ฅ : ["name", "age"]
// โœ… .values
// โœ… ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
	dic1.keys.sorted()
      
	for keys in temp { print(keys) }  // ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ


/* key ๊ฐ’์œผ๋กœ ์š”์†Œ์— ์ ‘๊ทผ   ======================================================== */
dic1["age"]           
print(dic1["age"])    // ์ถœ๋ ฅ :  optional(20) -> ํ•ด๋‹น key๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ nil

// ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•[]๋„ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— key๊ฐ’์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋œ๋‹ค. 
dic1["happy", default: 1]      // ์ถœ๋ ฅ : 1   -> ๋„Œ์˜ต์…”๋„ํƒ€์ž… Int, ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ ํ•„์š” ์—†์Œ

 

 

 

 

โœ… ๋”•์…”๋„ˆ๋ฆฌ์˜ ์—…๋ฐ์ดํŠธ / ์‚ญ์ œ

๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ˆœ์„œ๊ฐ€ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— insert, replace, append๋ฅผ update๊ฐ€ ๋Œ€์‹ ํ•œ๋‹ค. 

/* โœ… .updateValue() : ์—…๋ฐ์ดํŠธ   ================================== */
var name = [String: String]()

name.updateValue("name", forKey: "jihyeon")


/* โœ… .removeValue() : ์‚ญ์ œ   ================================== */
name["name"] = nil      // ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋‹น value ๊ฐ’ ์‚ญ์ œ

name.removeValue(forKey: "name")

name.removeAll()
name.removeAll(keepingCapacity: true)

 

 

 

 

 

๐Ÿ”Ž  3. ์ง‘ํ•ฉ(Set)


์š”์†Œ๊ฐ’์ด ์ค‘๋ณต์œผ๋กœ ๋“ค์–ด๊ฐ€๋„ ์ค‘๋ณต ์ €์žฅ ๋˜์ง€ ์•Š๋Š”๋‹ค. 

hashing ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‚ฌ์šฉ์œผ๋กœ ์ •๋ ฌ์ˆœ์„œ๋ณด๋‹ค ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ์ค‘์š”ํ•  ๋•Œ ์‚ฌ์šฉ

var nums1: Set<Int> = [1,3,2,1]       // ์ถœ๋ ฅ : [1, 3, 2] - ์ •๊ทœ ๋ฌธ๋ฒ•  
var nums2: Set = [2,3,4,5]            // ์ถœ๋ ฅ : [5, 4, 2, 3] - ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑ


// ๋นˆ Set ์ƒ์„ฑ
var newSet1: Set<Int> = []
var newSet2 = Set<Int>()

 

 

โœ… ์ง‘ํ•ฉ์˜ ๊ธฐ๋ณธ๊ธฐ๋Šฅ/  ์—…๋ฐ์ดํŠธ / ์‚ญ์ œ

๋ฐฐ์—ด๊ณผ ๋”•์…”๋„ˆ๋ฆฌ์™€ ๊ฐ™์ด ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์€ ์—†์ŒโŒ

/* ์ ‘๊ทผ ์—ฐ์‚ฐ์ž : ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์€ ๊ฐ™๋‹ค */
// โœ… .count =======================
nums1.count        


// โœ… .isEmpty =====================
nums1.isEmpty     


// โœ… .contains() : true/false ====
nums1.contains(4)
                       

// โœ… .randomElement() ============
nums1.randomElement()



/* ์—…๋ฐ์ดํŠธ : ์‚ฝ์ž… & ์ถ”๊ฐ€ & ๊ต์ฒด ======= */
// โœ… . update(with: )
nums1.update(with: 1)  // ์ถœ๋ ฅ : [1, 3, 2] - ์š”์†Œ 1์€ ์ด๋ฏธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€ํ•จ์ด ์—†์Œ
nums1.update(with: 7)  // ์ถœ๋ ฅ : [1, 3, 2, 7]

// โœ… . remove()
nums1.remove(1)        // ์ถœ๋ ฅ : [3, 2, 7]
nums1.remove(9)        // ์—†๋Š” ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ๋•Œ๋ฌธ์— nil return 
                       // ์‚ญ์ œํ•˜๋ ค๋Š” ์š”์†Œ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜๊ฐ’์€ ์˜ต์…”๋„ ํƒ€์ž…์ด๋‹ค.
nums1.removeAll()      // ์ถœ๋ ฅ : []

 

22๋ฒˆ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋ฉด,

์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ ์‹คํ–‰ ์‹œ nil์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

updateํ•  ๋•Œ ๊ธฐ์กด์— ์žˆ๋˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ 

์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ๊ฐ’์ด ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค. 

 

7์ด๋ผ๋Š” ์š”์†Œ๋Š” ๊ธฐ์กด์— ์—†์—ˆ๋˜ ์š”์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์—

nil์„ returnํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ update๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 

 

 

 

โœ… Set์˜ ์ •๋ ฌ์€ ๋ฐฐ์—ด๋กœ return

var setNums: Set = [2,5,3,8,1]
var arrayNums: Array = setNums.sorted() //์ถœ๋ ฅ : [1, 2, 3, 5, 8] 
                                        //์ •๋ ฌ์„ ํ•˜๋Š” sorted()๋Š” ์ˆœ์„œ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

 

 

 

๐Ÿ”— Reference 

- https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-%EB%AC%B8%EB%B2%95-%EB%A7%88%EC%8A%A4%ED%84%B0-%EC%8A%A4%EC%BF%A8&unitId=86570&tab=curriculum

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ