Sobes.tech
Junior

რა განსხვავებაა ArrayList და List შორის C#-ში?

sobes.tech AI

პასუხი AI-სგან

C#-ში ArrayList და List შორის განსხვავებები შემდეგია:

  • ტიპიზაცია:

    • ArrayList ინახავს ელემენტებს object ტიპში (არასპეციფიკური კოლექცია), რაც საჭიროებს ტიპის კონვერტაციას ელემენტების ამოღებისას და ამცირებს ტიპის უსაფრთხოებას.
    • List<T> არის გენერირებული კოლექცია (T — განსაზღვრული ტიპი), ინახავს მხოლოდ მითითებულ ტიპის ელემენტებს, უზრუნველყოფს ტიპის უსაფრთხოებას და ამოღებისას არ საჭიროებს კონვერტაციას.
  • შესრულების სიჩქარე:

    • ArrayList-ში ელემენტების დამატება და ამოღება შეიძლება იყოს ნელი, რადგან საჭიროა ბოქსინგი (boxing) და ანბოქსინგი (unboxing) მნიშვნელობით ტიპებისთვის.
    • List<T> ჩვეულებრივ უფრო სწრაფია, განსაკუთრებით მნიშვნელობით ტიპებისთვის, რადგან ბოქსინგი/ანბოქსინგი არ ხდება.
  • ტიპის უსაფრთხოება:

    • ArrayList-ში შეიძლება იყოს სხვადასხვა ტიპის ელემენტები, რაც შეიძლება გამოიწვიოს შეცდომები შესრულების დროს.
    • List<T> უზრუნველყოფს ტიპის უსაფრთხოებას კომპილაციის დროს.
  • რეალიზაცია:

    • ArrayList მდებარეობს System.Collections სახელობის სივრცეში.
    • List<T> მდებარეობს System.Collections.Generic სახელობის სივრცეში.
  • გამოყენება:

    • ArrayList ითვლება მოძველებულად და არ არის რეკომენდებული ახალი კოდის გამოყენებისთვის.
    • List<T> არის სასურველი არჩევანი უმეტეს სცენარებში.

მაგალითი გამოყენებისთვის:

// ArrayList-ის გამოყენება
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1);       // int ბოქსდება object-ში
arrayList.Add("სტრიქონი"); // string ინახება როგორც object

int რიცხვი = (int)arrayList[0]; // საჭიროა ტიპის კონვერტაცია

// List<T>-ის გამოყენება
System.Collections.Generic.List<int> სია = new System.Collections.Generic.List<int>();
სია.Add(1); // int-ის დამატება

// int რიცხვი = სია[0]; // კონვერტაცია საჭირო არაა

შედარების სია:

მახასიათებელი ArrayList List<T>
ტიპიზაცია არატიპიზირებული (object) გენერიკული (T)
შესრულების სიჩქარე შესაძლებელია ბოქსინგი/ანბოქსინგი უფრო მაღალი, ბოქსინგი/ანბოქსინგი არ არის
ტიპის უსაფრთხოება დაბალი მაღალი (კომპილაციის დროს)
სახელმწიფო სივრცე System.Collections System.Collections.Generic
შეფასება არ რეკომენდირებულია რეკომენდირებულია