• 0

متى يتوجب علي استعمال (List(of أو (LinkedList(of على بيئة net.؟

لاحظت أن (List(of  و (LinkedList(of متشابهتين إلى حد كبير، وأريد الاستفسار عن داعي وجوب استخدام كل منهما؟ متى أستخدم كل نوع من هذه المصفوفات؟

تمّ تعديل بواسطة محمد بوسكوري

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

لمعرفة الفرق بينهما، لاحظ الآتي:

(Linked list (3.9 seconds:

  LinkedList<Temp> list = new LinkedList<Temp>();

        for (var i = 0; i < 12345678; i++)
        {
            var a = new Temp(i, i, i, i);
            list.AddLast(a);
        }

        decimal sum = 0;
        foreach (var item in list)
            sum += item.A;
  • (List (2.4 seconds:

 List<Temp> list = new List<Temp>(); // 2.4 seconds

        for (var i = 0; i < 12345678; i++)
        {
            var a = new Temp(i, i, i, i);
            list.Add(a);
        }

        decimal sum = 0;
        foreach (var item in list)
            sum += item.A;

ثم:

(Linked List (51 seconds: 

   LinkedList<Temp> list = new LinkedList<Temp>();

        for (var i = 0; i < 123456; i++)
        {
            var a = new Temp(i, i, i, i);

            list.AddLast(a);
            var curNode = list.First;

            for (var k = 0; k < i/2; k++) // ندمح عنصر داخل المصفوفوة حتى يسهل البحث عنه
                curNode = curNode.Next;

            list.AddAfter(curNode, a); 
        }

        decimal sum = 0;
        foreach (var item in list)
            sum += item.A;

  (List (7.26 seconds:

     List<Temp> list = new List<Temp>();

        for (var i = 0; i < 123456; i++)
        {
            var a = new Temp(i, i, i, i);

            list.Insert(i / 2, a);
        }

        decimal sum = 0;
        foreach (var item in list)
            sum += item.A;

نلاحظ من خلال الكود السابق، والذي يبرز الفرق الواضح بين كل من  List و LinkedList، أن الأولى أسرع من حيث تنفيذ الكود، حيث عمدت المقارنة على استعمال نفس الكود على كلتا المصفوفتين مع حساب المدة الزمنية لإنجاز ذلك، فتبين أن List أسرع من linkedlist في إدخال البيانات وكذا البحث عن عنصر ما داخل المصفوفة.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن