Динамические массивы


Размер обычного массива фиксируется при его создании и в процессе выполнения программы напрямую его изменить невозможно. На практике встречаются задачи, когда количество элементов в массиве должно меняться в процессе выполнения программы.

Альтернативой массиву в этом случае является динамический массив. Динамический массив определен как класс ArrayList в пространстве имен System.Collections.

Принципиальное отличие от обычного массива: размер динамического массива автоматически изменяется при добавлении и удалении элементов, которые выполняются специальными методами.

Поле объекта: Count – количество элементов в массиве

Методы объекта для добавления элементов в массив:

Add (значение) // добавление элемента в конец массива

AddRange (массив) // добавление массива в конец массива

Insert (номер позиции, значение) //добавление элемента в заданную позицию

InsertRange (номер позиции, массив) // добавление массива с заданной позиции

Методы объекта для удаления элементов из массива:

Remove (значение)

RemoveAt (номер позиции)

RemoveRange (номер позиции, количествово элементов)

Clear ()// удаление всех элементов

Пример:

ArrayList_a;

int[] b,c;

b=new int[]{10, 20};

c=new int[100];

a=new ArrayList(); a Count

пусто 0

a.Add(5); 5 1

a.Insert(0,77); // в позицию 0 значение 77 77 5 2

a.AddRange(b); 77 5 10 20 4

a.CopyTo(1,c,0,3); 4

a.InsertRange(0,b); 10 20 77 5 10 20 6

a.Remove(20); 10 77 5 10 20 5

a.RemoveAt(3); 10 77 5 20 4

a.RemoveRange(1,2); 10 20 2

a.Clear(); пусто 0

 

Если действие выполнить невозможно, действие не выполняется. Если выполняемое действие приводит к выходу за границы массива, фиксируется исключительная ситуация.

Выбор, каким массивом пользоваться, зависит от ситуации. Обычный массив структурно проще, доступ к элементу быстрее, методов больше.

У динамического массива можно без проблем удалять/добавлять элементы, легко изменять размер.

На практике используется сочетание динамического и обычного массивов. Это порождает проблему создания динамического массива на основе обычного и наоборот.

динамический массив(a) → обычный массив(b)

a.CopyTo (позиция в дин.мас-ве ,обычный массив, позиция в об.мас-ве, кол-во элементов)

обычный массив(b) → динамический массив(a)

a.AddRange (b) //добавление обычного массива в пустой динамический

Строки

Понятие строки и операции со строками были рассмотрены ранее. Остановимся на дополнительных возможностях, которые предоставляются методами класса string.

Поле объекта: Length

Методы объекта:

сравнение строк на предмет больше-меньше

ИмяСтроки.CompareTo (строка, с которой сравниваем)

Сравнение выполняется лексикографичекси (по алфавиту), метод возвращает целое число:

-1, если строка < той, с которой сравниваем

0, если строка = той, с которой сравниваем

+1, если строка > той, с которой сравниваем

 

 

поиск подстроки


позиция key в вызываемой строке, начиная с заданной позиции

IndexOf – первое вхождение key

LastIndexOf – последнее вхождение key

Возвращает -1, если key отсутствует

 

Замена в вызывающей строке всех подстрок s1 на новую подстроку s2.

 

 

 


Вставка в вызывающую строку строки s1 с заданной позиции.

 


Удаление в строке заданного количества символов, начиная с заданной позиции.

 

 


Разбиение вызывающей строки на слова. Возможные разделители между словами указываются в массиве символов.

 

 


Если несколько разделителей идут подряд, первый из них считается разделителем, а на месте остальных формируется пустая строка.

Формирование строки путем соединения строк, указанных в массиве. Слова в объединенной строке разделяются строкой-разделителем.


 

 

Метод Join - статический

string s1=”око , за”;

string[] word;

char[] sep; // массив разделителей

sep = new char[]{‘ ’, ‘,’};

s1=s1.Insert(8, “_око”);

s1=s1.Replace(“око”, “зуб”);

word=s1.Split(sep);

s1=string.Join (“>”, word);



Дата добавления: 2019-02-08; просмотров: 588;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.012 сек.