Swift-এ অ্যারে (Array) এবং সেট (Set) হলো দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা একাধিক মান সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়। অ্যারে এবং সেট উভয়ই সংগ্রহের ধরন হলেও, এদের বৈশিষ্ট্য এবং ব্যবহারিক পার্থক্য রয়েছে। নিচে অ্যারে এবং সেট সম্পর্কে বিস্তারিত আলোচনা করা হলো।
অ্যারে (Array)
অ্যারে হলো একটি সংগ্রহ, যা একই ধরনের একাধিক মান সংরক্ষণ করতে পারে এবং প্রতিটি মান একটি নির্দিষ্ট ক্রম বা ক্রমানুসারে থাকে। অ্যারে ইনডেক্সের মাধ্যমে প্রতিটি উপাদান অ্যাক্সেস করা যায় এবং অ্যারের ইনডেক্স সর্বদা ০ থেকে শুরু হয়।
অ্যারে ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন
var numbers: [Int] = [1, 2, 3, 4, 5]
- এখানে,
numbersহলো একটি ইন্টিজার টাইপ অ্যারে, যা[1, 2, 3, 4, 5]মানগুলো ধারণ করে। [Int]হলো অ্যারের টাইপ, যা নির্দেশ করে এটি একটি ইন্টিজার টাইপের অ্যারে।
অ্যারের বৈশিষ্ট্য
- ইনডেক্সের মাধ্যমে অ্যাক্সেস: প্রতিটি উপাদান ইনডেক্স ব্যবহার করে অ্যাক্সেস করা যায়।
- ক্রমাঙ্কিত: অ্যারে সর্বদা ক্রমানুসারে থাকে।
- ডুপ্লিকেট মান অনুমোদন: অ্যারেতে একই মান একাধিকবার থাকতে পারে।
অ্যারে ব্যবহার
// নির্দিষ্ট উপাদান অ্যাক্সেস করা
let firstNumber = numbers[0] // Output: 1
// নতুন উপাদান যোগ করা
numbers.append(6) // numbers: [1, 2, 3, 4, 5, 6]
// উপাদান পরিবর্তন করা
numbers[2] = 10 // numbers: [1, 2, 10, 4, 5, 6]
// উপাদান সরানো
numbers.remove(at: 1) // numbers: [1, 10, 4, 5, 6]
// অ্যারের দৈর্ঘ্য পাওয়া
let count = numbers.count // Output: 5
খালি অ্যারে তৈরি
var emptyArray: [String] = []
- এখানে,
emptyArrayহলো একটি খালি স্ট্রিং অ্যারে। আপনি চাইলে এভাবে খালি অ্যারে ইনিশিয়ালাইজ করতে পারেন।
সেট (Set)
সেট হলো একটি সংগ্রহ, যা একই ধরনের একাধিক মান সংরক্ষণ করতে পারে, তবে সেটের উপাদানগুলির মধ্যে কোনো নির্দিষ্ট ক্রম থাকে না এবং সেটে ডুপ্লিকেট মান থাকতে পারে না।
সেট ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন
var numberSet: Set<Int> = [1, 2, 3, 4, 5]
- এখানে,
numberSetহলো একটি ইন্টিজার টাইপ সেট, যা[1, 2, 3, 4, 5]মানগুলো ধারণ করে। Set<Int>নির্দেশ করে এটি একটি ইন্টিজার টাইপের সেট।
সেটের বৈশিষ্ট্য
- ইনডেক্স নেই: সেটের উপাদানগুলো ইনডেক্স অনুযায়ী অ্যাক্সেস করা যায় না, কারণ সেট অর্ডারবিহীন।
- অর্ডারবিহীন: সেটে উপাদানগুলো কোনো নির্দিষ্ট ক্রমে থাকে না।
- ডুপ্লিকেট মান অনুমোদন নয়: সেটে প্রতিটি মান একবারই থাকতে পারে, একই মান একাধিকবার থাকতে পারে না।
সেট ব্যবহার
// নতুন উপাদান যোগ করা
numberSet.insert(6) // numberSet: [1, 2, 3, 4, 5, 6]
// উপাদান সরানো
numberSet.remove(3) // numberSet: [1, 2, 4, 5, 6]
// উপাদান আছে কিনা চেক করা
let containsFour = numberSet.contains(4) // Output: true
// সেটের দৈর্ঘ্য পাওয়া
let setCount = numberSet.count // Output: 5
খালি সেট তৈরি
var emptySet = Set<String>()
- এখানে,
emptySetহলো একটি খালি স্ট্রিং টাইপ সেট।
অ্যারে বনাম সেট
| বৈশিষ্ট্য | অ্যারে (Array) | সেট (Set) |
|---|---|---|
| অর্ডার | ক্রমানুসারে উপাদান থাকে | উপাদানগুলির কোনো নির্দিষ্ট ক্রম নেই |
| ইনডেক্স | ইনডেক্সের মাধ্যমে উপাদান অ্যাক্সেস করা যায় | ইনডেক্স নেই, সরাসরি উপাদান অ্যাক্সেস করা যায় না |
| ডুপ্লিকেট মান | একই মান একাধিকবার থাকতে পারে | ডুপ্লিকেট মান অনুমোদন নয় |
| পারফরম্যান্স | ইনডেক্সেড অপারেশনে দ্রুত, তবে অনুসন্ধানে ধীরগতি | অনুসন্ধান এবং উপাদান সরানো দ্রুত (হ্যাশ-ভিত্তিক) |
কখন অ্যারে এবং কখন সেট ব্যবহার করবেন?
অ্যারে ব্যবহার করবেন যখন:
- উপাদানগুলো ক্রমানুসারে রাখতে হবে।
- ইনডেক্সের মাধ্যমে দ্রুত অ্যাক্সেস করতে হবে।
- একই মান একাধিকবার থাকতে পারে।
সেট ব্যবহার করবেন যখন:
- উপাদানগুলির ক্রম গুরুত্বপূর্ণ নয়।
- দ্রুত অনুসন্ধান (contains) প্রয়োজন।
- ডুপ্লিকেট মান রাখতে হবে না।
উদাহরণ: অ্যারে এবং সেট ব্যবহার
// অ্যারে ব্যবহার
var fruitsArray = ["Apple", "Banana", "Orange", "Apple"]
print(fruitsArray) // Output: ["Apple", "Banana", "Orange", "Apple"]
// সেট ব্যবহার
var fruitsSet: Set<String> = ["Apple", "Banana", "Orange", "Apple"]
print(fruitsSet) // Output: ["Apple", "Banana", "Orange"]
- অ্যারেতে ডুপ্লিকেট মান রাখতে পারলেও, সেটে ডুপ্লিকেট মান সরিয়ে ফেলে, কারণ সেটে প্রতিটি মান একবারই থাকতে পারে।
উপসংহার
Swift-এ অ্যারে এবং সেট দুই ধরনের সংগ্রহের ধরন, যা বিভিন্ন প্রকার ডেটা সংরক্ষণ ও পরিচালনা করতে ব্যবহৃত হয়।
- অ্যারে হলো একটি ক্রমানুসারিত সংগ্রহ, যেখানে ইনডেক্সের মাধ্যমে উপাদান অ্যাক্সেস করা যায় এবং ডুপ্লিকেট মান অনুমোদিত।
- সেট হলো একটি অর্ডারবিহীন সংগ্রহ, যা ডুপ্লিকেট মান অনুমোদিত নয় এবং দ্রুত অনুসন্ধানের জন্য উপযোগী।
প্রোগ্রামিংয়ে কোন পরিস্থিতিতে কোনটি ব্যবহার করবেন, সেটি আপনার ডেটার ধরন এবং ব্যবহারের উপর নির্ভর করে।