Справочник от Автор24
Поделись лекцией за скидку на Автор24

Класс ArrayList

  • 👀 324 просмотра
  • 📌 300 загрузок
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Класс ArrayList» docx
ArrayList Класс ArrayList представляет коллекцию объектов. И если надо сохранить вместе разнотипные объекты - строки, числа и т.д., то данный класс как раз для этого подходит. Рассмотрим пример. using System; using System.Collections; namespace ConsoleArrayList { class Program { static void Main(string[] args) { ArrayList list = new ArrayList(); // Заносим в список объект типа double. list.Add(2.3); // заносим в список объект типа int. list.Add(55); // Заносим в список строковый массив. list.AddRange(new string[] { "Hello", "world" }); Console.WriteLine("Список после занесения элементов:"); // Пперебор значений. foreach (object o in list) { Console.WriteLine(o); } // Удаляем первый элемент. list.RemoveAt(0); // переворачиваем список. list.Reverse(); // Получение элемента по индексу. Console.WriteLine(list[0]); Console.WriteLine("Список после модификации:"); // Перебор значений. for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); } Console.ReadLine(); } } } Во-первых, так как класс ArrayList находится в пространстве имен System.Collections, то подключаем его (using System.Collections;). Вначале создаем объект коллекции, используя конструктор, как объект любого другого класса:  ArrayList list = new ArrayList(); При необходимости мы могли бы так же, как и с массивами, выполнить начальную инициализацию коллекции, например, ArrayList list = new ArrayList(){1, 2, 5, "string", 7.7}; Далее последовательно добавляем разные значения. Данный класс коллекции, как и большинство других коллекций, имеет два способа добавления: одиночного объекта через метод Add и набора объектов, например, массива или другой коллекции через метод AddRange Благодаря тому, что в классе ArrayList реализован интерфейс IEnumerable, мы можем пройтись по всем объектом, хранящимся в списке, через цикл foreach. И поскольку данная коллекция хранит разнородные объекты, а не только числа или строки, то в качестве типа перебираемых объектов выбран тип object:  foreach (object o in list) Многие коллекции, в том числе и ArrayList, реализуют удаление с помощью методов Remove/RemoveAt. В данном случае мы удаляем первый элемент, передавая в метод RemoveAt индекс удаляемого элемента. В завершении мы опять же выводим элементы коллекции на экран только уже через цикл for. В данном случае с перебором коллекций дело обстоит так же, как и с массивами. А число элементов коллекции мы можем получить через свойство Count С помощью индексатора мы можем получить по индексу элемент коллекции так же, как и в массивах:  object firstObj = list[0]; Для использования элементов списка в соответствии с типом их значений, при извлечении из списка значение элемента необходимо привести к его типу явно: using System; using System.Collections; namespace Example_2 { class Program { static void Main(string[] args) { ArrayList l = new ArrayList() { 1, 2, 3, 4, 5 }; //Приведение элемента списка к его типу. int i = (int)l[4]; Console.WriteLine("i = " + i); int s = 0; foreach (object x in l) s += (int)x; Console.WriteLine("s = " + s); } } } Список List Класс List представляет простейший список однотипных объектов типа Т. Тип объектов задаётся при описании переменной. В качестве типа элементов списка можно выбрать любой тип C#. Среди его методов можно выделить следующие: • void Add(T item): добавление нового элемента в список • void AddRange(ICollection collection): добавление с список коллекции или массива • int BinarySearch(T item): бинарный поиск элемента в списке. Если элемент найден, то метод возвращает индекс этого элемента в коллекции. При этом список должен быть отсортирован. • int IndexOf(T item): возвращает индекс первого вхождения элемента в списке • void Insert(int index, T item): вставляет элемент item в списке на позицию index • bool Remove(T item): удаляет элемент item из списка, и если удаление прошло успешно, то возвращает true • void RemoveAt(int index): удаление элемента по указанному индексу index • void Sort(): сортировка списка Свойства Capacity Возвращает или задает общее число элементов, которые может вместить внутренняя структура данных без изменения размера. Count Получает число элементов, содержащихся в интерфейсе List. Item[Int32] Возвращает или задает элемент по указанному индексу. Посмотрим реализацию списка на примере: using System; using System.Collections.Generic; namespace Example_1 { class Person { public string Name { get; set; } } class Program { static void Main(string[] args) { //Создание списка целых чисел и инициализация его значениями. List numbers = new List() { 1, 2, 3, 45 }; // Добавление элемента. numbers.Add(6); // Добавление диапазона. numbers.AddRange(new int[] { 7, 8, 9 }); // Вставляем на первое место в списке число 123. numbers.Insert(0, 123); // Удаляем второй элемент. numbers.RemoveAt(1); foreach (int i in numbers) { Console.WriteLine(i); } //Создаём список из трёх объектов класса Person. List people = new List(3); Console.WriteLine("Count = {0}, Capacity = {1}", people.Count, people.Capacity); people.Add(new Person() { Name = "Иван" }); people.Add(new Person() { Name = "Пётр" }); foreach (Person p in people) { Console.WriteLine(p.Name); } Console.ReadLine(); } } } Во-первых, так как класс List<> находится в пространстве имен System.Collections.Generic, то подключаем его (using System.Collections.Generic;). Здесь у нас создаются два списка: один для объектов типа int, а другой - для объектов Person. В первом случае мы выполняем начальную инициализацию списка: List numbers = new List() { 1, 2, 3, 45 }; Во втором случае мы используем другой конструктор, в который передаем начальную емкость списка: List people = new List(3);. Указание начальной емкости списка (capacity) позволяет в будущем увеличить производительность и уменьшить издержки на выделение памяти при добавлении элементов. Также начальную емкость можно установить с помощью свойства Capacity, которое имеется у класса List. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleList { class Program { static void Main(string[] args) { List L = new List { 1, 8, 3, 7 }; foreach (int x in L) Console.Write("\t"+x); Console.WriteLine(); L.Sort(); foreach (int x in L) Console.Write("\t" + x); Console.WriteLine(); L.Reverse(); foreach (int x in L) Console.Write("\t" + x); Console.WriteLine(); L.Add(9); foreach (int x in L) Console.Write("\t" + x); Console.WriteLine(); L.RemoveAt(2); foreach (int x in L) Console.Write("\t" + x); Console.WriteLine(); } } }
«Класс ArrayList» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot