سلام به همه پی وی لرنی های عزیز!
List و Set هر دو ساختار بسیاری از داده های پشتیبانی شده توسط #C سی شارپ است. List ک ساختار داده انتزاعی است که خطی است و شامل عناصری است که به روشی خطی مرتب شده اند. می توان عناصر را در موقعیت های مختلف به List اضافه کرد. List دارای خاصیتی به نام طول (تعداد عناصر موجود در List ) است. در این مقاله می خواهیم به مقایسه ویژگی های List و Set بپردازیم.
مقایسه ویژگی های List و Set
پیش از آن که به سراغ مقایسه ویژگی های List و Set برویم باید بگویم که List ها با آرایه ها متفاوت هستند. List دارای اندازه متغیر هستند. عناصر می توانند در List اضافه شوند در حالی که آرایه ها دارای اندازه ثابت هستند.
Set یک ساختار داده انتزاعی است. Set عناصر منحصر به فردی دارد و ترتیب عناصر در آن مهم نیست. عناصر موجود در Set از طریق شاخص ها قابل دسترسی نیستند. خود عناصر شاخص در Set هستند و با استفاده از یک حلقه foreach به یک عنصر خاص می توان دسترسی پیدا کرد.
نمونه ای از کد List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // C# Program to remove the element at // the specified index of the List<T> using System; using System.Collections.Generic; class StaticList { // Main Method public static void Main(String[] args) { // Creating an List<T> of Integers List<int> firstlist = new List<int>(); // Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73); Console.WriteLine("Elements Present in the List:"); // Displaying the elements of List for(int k=0;k<firstlist.Count;k++) { Console.Write(firstlist[k]+" "); } Console.WriteLine(" "); // removing the element at index 3 Console.WriteLine("Removing the element at index 3"); // 9 will be removed from the List // and 75 will come at index 3 firstlist.RemoveAt(3); // Displaying the elements of List foreach(int k in firstlist) { Console.Write(k+" "); } } } |
خروجی کد List
نمونه ای از کد Set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System; using System.Collections.Generic; class HS { // Driver code public static void Main() { // Creating a HashSet of odd numbers HashSet<int> odd = new HashSet<int>(); // Inserting elements in HashSet for (int i = 0; i < 5; i++) { odd.Add(2 * i + 1); } Console.WriteLine("Elements in the HashSet:"); // Displaying the elements in the HashSet foreach(int i in odd) { Console.Write(i+" "); } Console.WriteLine("\nTotal elements in the HashSet = "+odd.Count); Console.WriteLine("Is it possible to remove 7? : "+odd.Remove(7)); Console.WriteLine("New HashSet = "); foreach(int i in odd) { Console.Write(i+" "); } } } |
خروجی کد Set
آشنایی با تفاوت های List و Set
در ادامه جدولی ارائه کرده ایم که می تواند در شناخت تفاوت های عمده میان این دو مفید باشد.
List | Set |
۱٫ می تواند شامل عناصر تکراری باشد | ۱٫ عناصر باید منحصر به فرد باشند |
۲٫ ترتیب عناصر مهم است | ۲٫ ترتیب عناصر مهم نیست ، اما بستگی به اجرای آن دارد. |
۳٫ با استفاده از فهرست به عناصر دسترسی پیدا می کنید. | ۳٫ خود عناصر شاخص هستند. |
۴- رابط مورد استفاده برای پیاده سازی لیست System.Collections.IList است. | ۴- واسط مورد استفاده برای پیاده سازی مجموعه System.Collections.ISet است. |
۵- این لیست به عنوان یک لیست استاتیک (با استفاده از آرایه) و لیست پویا (لیست لینک شده ) پیاده سازی می شود. | ۵٫ مجموعه ها به صورت hashset (hashtable) و مجموعه مرتب شده پیاده سازی می شوند |
کلام آخر
در این مقاله به مقایسه ویژگی های List و Set پرداختیم و وجوه تفاوت هایی هر یک از این دو را شناختیم و آن را در نمونه هایی بررسی کرده ایم. امیدوارم این مقاله مفید باشد. با پی وی لرن همراه باشید.