জাভার SortedMap ইন্টারফেসের সমতুল্য C#-এ হলো SortedList<TKey, TValue> ক্লাস। এটি কি-ভ্যালু জোড়া সংরক্ষণ করে এবং কি অনুযায়ী স্বয়ংক্রিয়ভাবে সর্ট করা থাকে।
SortedList-এর বৈশিষ্ট্য
- ডুয়াল অ্যাক্সেস: কি দিয়ে (হ্যাশ টেবিলের মত) এবং ইনডেক্স দিয়ে (অ্যারেলিস্টের মত) উভয়ে অ্যাক্সেস করা যায়।
- সর্টেড অর্ডার: উপাদানগুলো সবসময় কি অনুযায়ী সর্ট করা থাকে।
- যুনিক কি: প্রতিটি কি ইউনিক হতে হবে।
- পারফরম্যান্স: ইনসারশন এবং রিমুভাল O(n), লুকআপ O(log n)।
বেসিক উদাহরণ: কি প্রদর্শন
using System;
using System.Collections;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
SortedList sl = new SortedList();
sl.Add("ST0", "One");
sl.Add("ST1", "Two");
sl.Add("ST2", "Three");
ICollection keys = sl.Keys;
foreach (string k in keys)
{
Console.WriteLine(k);
}
}
}
}
আউটপুট
ST0
ST1
ST2
জেনেরিক সংস্করণ (সুপারিশ করা)
আধুনিক C#-এ SortedList<TKey, TValue> ব্যবহার করা ভালো:
using System;
using System.Collections.Generic;
var sortedList = new SortedList<string, string>();
sortedList.Add("ST0", "One");
sortedList.Add("ST1", "Two");
sortedList.Add("ST2", "Three");
// কি অনুযায়ী অ্যাক্সেস
Console.WriteLine(sortedList["ST1"]); // আউটপুট: Two
// ইনডেক্স অনুযায়ী অ্যাক্সেস
Console.WriteLine(sortedList.Values[0]); // আউটপুট: One
// সব কি-ভ্যালু জোড়া প্রিন্ট
foreach (var kvp in sortedList)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}
SortedList vs SortedDictionary
| ফিচার | SortedList | SortedDictionary |
|---|---|---|
| মেমরি দক্ষতা | উচ্চ (ছোট কালেকশনের জন্য) | নিম্ন |
| ইনসারশন স্পিড | O(n) | O(log n) |
| ইন্ডেক্স বেসড অ্যাক্সেস | হ্যাঁ | না |
| বড় ডেটাসেটের জন্য | কম উপযুক্ত | আরো ভালো |
সাধারণ অপারেশনগুলো
Add(key, value)- উপাদান যোগ করুনRemove(key)- কি দিয়ে মুছে দিনContainsKey(key)- কি আছে কিনা চেক করুনTryGetValue(key, out value)- নিরাপদে ভ্যালু পানKeys/Values- কালেকশন পান