ภาพรวม
ใน Java มี SortedMap interface แต่ใน C# คลาสที่เทียบเท่าคือ SortedList ซึ่งเป็นคอลเลกชันที่จัดเก็บคู่คีย์-ค่า (key-value pairs) และจัดเรียงตามคีย์อัตโนมัติ
โค้ดตัวอย่าง
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
คุณสมบัติหลักของ SortedList
- จัดเรียงตามคีย์อัตโนมัติ (เรียงจากน้อยไปมาก)
- เข้าถึงได้ทั้งด้วยคีย์ (เหมือน Hashtable) และดัชนี (เหมือน ArrayList)
- ไม่รองรับคีย์ซ้ำ (duplicate keys)
- คีย์และค่าสามารถเป็น
nullได้ (สำหรับค่า) - ประสิทธิภาพ: O(log n) สำหรับการค้นหา เพิ่ม ลบ
เมื่อไหร่ควรใช้ SortedList
- ต้องการคอลเลกชัน key-value ที่จัดเรียงตามคีย์
- ข้อมูลไม่ใหญ่มาก (สำหรับข้อมูลใหญ่ ควรพิจารณา
SortedDictionaryซึ่งมีประสิทธิภาพดีกว่าสำหรับการเพิ่ม/ลบ) - ต้องการเข้าถึงด้วยดัชนี (index-based access)