0Pricing
Swift Academy · บทเรียน

การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต

คุณลักษณะด้านประสิทธิภาพและชนิดคอลเลกชันที่เหมาะสมสำหรับแต่ละสถานการณ์

การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

คอลเลกชันในตัวของ Swift ทั้งสามชนิด ได้แก่ อาร์เรย์ พจนานุกรม และเซต ต่างมีจุดเด่นเฉพาะตัว การเลือกชนิดที่เหมาะสมส่งผลต่อทั้งความถูกต้องและประสิทธิภาพ

อาร์เรย์: ลำดับที่มีการเรียง

ใช้อาร์เรย์เมื่อ: • ลำดับมีความสำคัญ • ต้องการเข้าถึงดัชนีแบบสุ่มในเวลา `O(1)` • อนุญาตให้มีค่าซ้ำ • วนซ้ำตามลำดับ ```swift let steps = ["boil","add tea","steep","drink"] ```

พจนานุกรม: การค้นหาด้วยคู่คีย์-ค่า

ใช้พจนานุกรมเมื่อ: • ต้องการค้นหาด้วยคีย์ที่ไม่ซ้ำกันในเวลา O(1) • ข้อมูลมีลักษณะเป็นข้อมูลที่กำหนดด้วยคีย์โดยธรรมชาติ เช่น รหัสผู้ใช้หรือคีย์การกำหนดค่า ```swift var userNames: [Int: String] = [42: "Alice", 7: "Bob"] print(userNames[42]!) // "Alice" ```

เซต: สมาชิกที่ไม่ซ้ำกัน

ใช้เซตเมื่อ: • ต้องการตรวจสอบสมาชิกในเวลา O(1) • ต้องไม่ให้มีค่าซ้ำ • ลำดับไม่สำคัญ ```swift var visitedPages: Set = [] visitedPages.insert("/home") print(visitedPages.contains("/home")) // true ```

สรุปประสิทธิภาพ

| การดำเนินการ | อาร์เรย์ | พจนานุกรม | เซต | |-------------------|-------|------------|-------| | เพิ่มต่อท้าย | O(1)* | O(1)* | O(1)* | | เข้าถึงดัชนี/คีย์ | O(1) | O(1)* | — | | ค้นหา | O(n) | O(1)* | O(1)* | | แทรกตรงกลาง | O(n) | O(1)* | O(1)* | *ค่าเฉลี่ยแบบตัดจำหน่าย

เมื่ออาร์เรย์ดีกว่าเซต

คอลเลกชันขนาดเล็กมักเหมาะกับ `Array` มากกว่า `Set` เนื่องจากมีค่าใช้จ่ายเบื้องต้นต่ำกว่า: ```swift // For 5 items, Array.contains is perfectly fast: let tags = ["swift","ios","mobile"] if tags.contains("swift") { ... } ``` ค่าใช้จ่ายคงที่ของการทำแฮชอาจมีผลมากกว่าสำหรับเซตขนาดเล็กมาก

รูปแบบพจนานุกรมที่มีลำดับ

เมื่อจำเป็นต้องค้นหาด้วยคีย์และคงลำดับการแทรกไว้ด้วย: ```swift // Use an array of tuples or a struct: var ordered: [(key: String, value: Int)] = [] // Or Foundation's NSOrderedDictionary // Or maintain a [Key] array alongside a [Key:Value] dict ```

รูปแบบมัลติเซต

สำหรับค่าซ้ำที่ต้องนับจำนวน (มัลติเซต) ให้ใช้ `[T: Int]`: ```swift var frequency: [String: Int] = [:] for word in words { frequency[word, default: 0] += 1 } ```

ความไม่เปลี่ยนแปลง: let กับ var

คอลเลกชันทั้งสามชนิดได้รับประโยชน์จากการใช้ `let` เพื่อให้ไม่สามารถเปลี่ยนแปลงได้: ```swift let config: [String: String] = ["env": "prod"] let primes: Set = [2,3,5,7,11] let steps: [String] = ["fetch","parse","display"] ``` คอลเลกชันที่ไม่เปลี่ยนแปลงช่วยป้องกันการเปลี่ยนแปลงโดยไม่ตั้งใจ และเปิดให้คอมไพเลอร์ปรับปรุงประสิทธิภาพได้

ผังการตัดสินใจเชิงปฏิบัติ

ลองถามตัวเองว่า: 1. ต้องการเข้าถึงข้อมูลตามตำแหน่งโดยรักษาลำดับหรือไม่ → อาร์เรย์ 2. ต้องการค้นหาด้วยคีย์ที่ไม่ซ้ำกันหรือไม่ → พจนานุกรม 3. ต้องการตรวจสอบสมาชิกอย่างรวดเร็วโดยไม่มีค่าซ้ำหรือไม่ → เซต 4. ต้องการใช้ร่วมกันหรือไม่ → ประกอบคอลเลกชัน เช่น `[Key: [Value]]` สำหรับข้อมูลที่จัดกลุ่ม

ตรวจสอบอย่างรวดเร็ว

คอลเลกชันชนิดใดให้การค้นหาโดยเฉลี่ยในเวลา O(1) ด้วยคีย์ที่ไม่ซ้ำกัน

ทบทวน

ประเด็นสำคัญ: • อาร์เรย์ — มีลำดับ มีดัชนี และอนุญาตให้มีค่าซ้ำ • พจนานุกรม — คู่คีย์-ค่า ค้นหาในเวลา O(1) • เซต — ค่าที่ไม่ซ้ำกัน ตรวจสอบสมาชิกในเวลา O(1) • คอลเลกชันขนาดเล็ก: อาร์เรย์มักมีประสิทธิภาพดีกว่าเซตเนื่องจากค่าใช้จ่ายของการทำแฮช • ประกอบคอลเลกชันเพื่อจัดการรูปแบบข้อมูลที่ซับซ้อน จบบทเรียนแล้ว! บทถัดไป: รูปแบบการออกแบบโครงสร้าง

คำถามที่พบบ่อย

บทเรียน “การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต”

คุณลักษณะด้านประสิทธิภาพและชนิดคอลเลกชันที่เหมาะสมสำหรับแต่ละสถานการณ์ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การดำเนินการ CRUD กับพจนานุกรมและการเข้าถึงด้วยซับสคริปต์
  2. การวนซ้ำและการแปลงพจนานุกรม
  3. การดำเนินการกับเซต: ยูเนียน อินเตอร์เซกชัน ผลต่าง
  4. การเลือกระหว่างอาร์เรย์ พจนานุกรม และเซต
← กลับไปที่ Swift Academy