русс | укр

C# - Головна
Контакти
Задайте питання...
Перегляд всіх питань


Простір імен
  ► System (5)
  ► Microsoft (1)


Для учнів (початківців)
  ► Відео уроки (4)
  ► Навчання (177)
  ► Приклади програм (19)
  ► Секрети Сі Шарп (4)

Для професіоналів
  ► Навчання (6)
  ► Приклади програм (1)










Колекція ArrayList

 

Проблема створення статичного масиву вирішується за допомогою використання іншого класу даних мови С#. У просторі імен System.Collections є вбудований клас з назвою ArrayList. Якщо ми оголошуємо об'єкт цього класу, ми отримуємо масив, який в більшості відносин функціонує як простий масив, але може рости, якщо його початковий або поточний розмір виявляється недостатнім. Тому можна оголосити:

Using System.Collections;

...

ArrayList constant = new constants(100);

і якщо число об'єктів перевищить 100, це не буде мати ніякого значення. Масив буде розширено системою наскільки потрібно і як тільки в цьому виникне необхідність. Число, визначене в реченні, яке створює початковий список, є лише оцінкою очікуваного розміру масиву.

У таблиці 1 наведено властивості і методи класу ArrayList.

 

Таблиця 1 – властивості і методи класу ArrayList

int count повертає число зайнятих елементів у списку
int BinarySearch(v) переглядають список у пошуках значення v, шукаючи будь-входження, вимагає впорядкованого масиву
bool Contains(v) переглядають список у пошуках значення v,шукаючи будь-входження, повертає true або false
void Clear(first, num) вилучає зі списку всі елементи
int IndexOf(v) переглядають список у пошуках значення v, шукаючи перше входження
int LastIndexOf(v) переглядають список у пошуках значення v, шукаючи останнє входження
void removeAt(i) видаляє елемент з індексом /.
void Sort() впорядковує масив а, так що його елементи вишиковуються в зростаючому порядку.
void Array ToArray(type копіює елементи в масив даного типу

 

На жаль, ArrayList також має свої недоліки. Порівняно з масивами колекції ArrayList працюють набагато повільніше і займають більше оперативної пам'яті. Відбувається це через особливості колекцій, які, власне, і створюють зручність їх використання (можливість додавати і видаляти елементи з середини колекції). Якщо ви створюєте масив, то його розмір буде дорівнює кількості елементів масиву помноженій на розмір кожного елемента. Наприклад, для масиву з 10 елементами типу Integer виділяється 10*4=40 байт. Потім для зчитування елемента масиву обчислюється його положення в пам'яті на підставі номера елемента та розміру елементів і потім зчитується потрібну ділянку пам'яті. З колекціями все інакше. Кожен елемент колекції представлений не однією змінною, яка містить його значення, а структурою даних. Вона містить покажчик на дані елемента, посилання на попередній і наступний елемент колекції. Природно, така структура буде займати більше місця в оперативній пам'яті, ніж одна єдина змінна. Доступ до даних в колекції також організується по-особливому. Для отримання, наприклад, п'ятого елемента, колекція перебирає всі елементи, починаючи з першого, поки не дійде до потрібного індексу

 

Переглядів: 1923






© 2012 ci-sharp.ru При використанні матеріалу пряме iндексуюче посилання на сайт ОБОВ'ЯЗКОВЕ.
Права строго захищені нормами міжнародного права, інтелектуальної власності та авторського права.