Масиви та Колекції
Масиви та Колекції - Основа
Масиви та Колекції - загальне пояснення.
Масиви та колекції - це способи зберігання та організації даних у програмах. Давайте розглянемо їх основні риси та відмінності:
Масиви (Arrays):
- Масив - це структура даних, яка дозволяє зберігати кілька значень одного типу даних у впорядкованому списку.
- Розмір масиву фіксований, тобто ви повинні визначити його розмір при створенні.
- Елементи масиву індексуються числами, починаючи з 0.
Колекції (Collections):
- Колекції - це більш гнучкі структури даних, які можуть зберігати значення різних типів та динамічно змінювати розмір.
- Вони включають в себе різні типи колекцій, такі як List, Dictionary, HashSet, і багато інших.
Як використовувати масиви та колекції:
Приведемо приклади використання масивів та колекцій на мові програмування C#:
Масиви (Arrays):
// Створення масиву цілих чисел з 5 елементів
int[] numbers = new int[5];
// Ініціалізація масиву
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
// Доступ до елементів масиву
int thirdNumber = numbers[2]; // Значення третього елемента: 3
// Зміна значення елементу масиву
numbers[1] = 10;
// Виведення всіх елементів масиву за допомогою циклу
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine("Елемент " + i + ": " + numbers[i]);
}Колекції (Collections):
using System.Collections.Generic;
// Створення списку цілих чисел
List<int> numberList = new List<int>();
// Додавання елементів до списку
numberList.Add(1);
numberList.Add(2);
numberList.Add(3);
// Доступ до елементів списку
int secondNumber = numberList[1]; // Значення другого елемента: 2
// Зміна значення елементу списку
numberList[0] = 10;
// Виведення всіх елементів списку за допомогою циклу
foreach (int number in numberList)
{
Console.WriteLine("Елемент: " + number);
}Масиви
Пояснення масивів.
Масиви (Arrays) є важливою структурою даних в програмуванні, яка дозволяє зберігати кілька значень одного типу даних у впорядкованому списку. Масиви мають фіксований розмір, що означає, що ви повинні визначити кількість елементів при їх створенні, і цей розмір не можна змінити після створення масиву. Давайте розглянемо основні поняття та властивості масивів більш детально:
Основні поняття:
Елементи масиву: Масив складається з послідовності елементів, які можуть бути будь-якого типу даних (цілі числа, рядки, об'єкти тощо). Кожен елемент масиву має свій унікальний індекс, який визначає його позицію у масиві.
Індекси масиву: Елементи масиву індексуються числами, починаючи з 0. Індекс 0 вказує на перший елемент, індекс 1 - на другий, і так далі. Індекси допомагають отримувати доступ до конкретного елемента масиву.
Розмір масиву: Розмір масиву вказується при його створенні і залишається незмінним протягом життя масиву. Ви не можете додавати або видаляти елементи, якщо це не передбачено вами при створенні масиву.
Тип даних: Масиви мають тип даних, який визначає, який тип значень можна зберігати в масиві. Наприклад,
int[]- масив цілих чисел,string[]- масив рядків.
Створення та доступ до масиву:
Ось приклад створення, ініціалізації та доступу до масиву цілих чисел:
// Створення масиву цілих чисел з 5 елементів
int[] numbers = new int[5];
// Ініціалізація масиву
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
// Доступ до елементів масиву
int thirdNumber = numbers[2]; // Значення третього елемента: 3Послідовність операцій над масивом:
- Створення масиву з вказаною кількістю елементів та типом даних.
- Ініціалізація елементів масиву.
- Доступ до елементів за допомогою їх індексів.
- Зміна значення елементів масиву за індексом.
- Використання циклів (наприклад, циклу
for) для ітерації через всі елементи масиву.
Масиви використовуються для зберігання даних, коли вам потрібна фіксована кількість елементів, і ви заздалегідь знаєте, скільки елементів вам потрібно. Вони є потужним інструментом для роботи з багатьма типами завдань у програмуванні.
Колекції
Пояснення колекцій.
Розглянемо колекції, такі як List, Queue та Stack, у деталях.
List (Список):
- List - це динамічна колекція у мові програмування C#, яка може зберігати об'єкти одного типу в послідовному порядку.
- Він має вбудовану можливість змінювати свій розмір під час виконання програми, тобто ви можете додавати, видаляти і змінювати елементи на льоту.
- Елементи в списку індексуються, починаючи з нуля.
- List дозволяє додавати, видаляти та отримувати елементи за їхніми індексами, а також виконувати багато інших операцій, таких як сортування, пошук і фільтрація.
Приклад використання List:
using System;
using System.Collections.Generic;
List<int> numbers = new List<int>();
numbers.Add(1); // Додати елемент 1
numbers.Add(2); // Додати елемент 2
numbers.Remove(1); // Видалити елемент 1
int secondNumber = numbers[0]; // Отримати перший елемент (2)Queue (Черга):
- Queue - це колекція, яка використовує принцип "першим прийшов - першим вийшов" (FIFO - First-In-First-Out). Елементи, які додаються до черги, зберігаються у послідовному порядку, і перший доданий елемент буде першим вийнятий.
- Операції з Queue включають Enqueue (додавання елемента в кінець черги) і Dequeue (видалення та отримання першого елемента).
Приклад використання Queue:
using System;
using System.Collections.Generic;
Queue<string> names = new Queue<string>();
names.Enqueue("Alice"); // Додати "Alice" в кінець черги
names.Enqueue("Bob"); // Додати "Bob" в кінець черги
string firstPerson = names.Dequeue(); // Вийняти та отримати першу особу ("Alice")Stack (Стек):
- Stack - це колекція, яка використовує принцип "останнім прийшов - першим вийшов" (LIFO - Last-In-First-Out). Елементи, які додаються до стеку, зберігаються у послідовному порядку, і останній доданий елемент буде першим вийнятий.
- Операції з Stack включають Push (додавання елемента на вершину стеку) і Pop (видалення та отримання елемента з вершини стеку).
Приклад використання Stack:
using System;
using System.Collections.Generic;
Stack<string> books = new Stack<string>();
books.Push("Book1"); // Додати "Book1" на вершину стеку
books.Push("Book2"); // Додати "Book2" на вершину стеку
string topBook = books.Pop(); // Вийняти та отримати останню книгу ("Book2")Ці колекції дозволяють ефективно управляти даними в програмі та вирішувати різні завдання, використовуючи відповідні операції додавання, видалення та доступу до елементів. Вибір між ними залежить від потреб вашого проекту та особливостей завдань, які ви плануєте виконати.
Приклади використання масивів та колекцій
Масиви, колекції та їх використання.
Масиви (Arrays):
Приклад 1: Використання масиву для зберігання та опрацювання списку цілих чисел.
using System;
// Створюємо масив цілих чисел
int[] numbers = new int[3];
// Ініціалізуємо масив елементами
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
// Виводимо всі елементи масиву
foreach (int number in numbers)
{
Console.WriteLine("Елемент масиву: " + number);
}Приклад 2: Використання масиву для зберігання та опрацювання списку рядків.
using System;
// Створюємо масив рядків
string[] names = new string[3];
// Ініціалізуємо масив іменами
names[0] = "Аліса";
names[1] = "Боб";
names[2] = "Чарлі";
// Виводимо всі імена з масиву
foreach (string name in names)
{
Console.WriteLine("Ім'я з масиву: " + name);
}List (Список):
Приклад 1: Використання List для зберігання та опрацювання списку цілих чисел.
using System;
using System.Collections.Generic;
// Створюємо список для зберігання цілих чисел
List<int> numbers = new List<int>();
// Додаємо елементи до списку
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// Виводимо всі елементи списку
foreach (int number in numbers)
{
Console.WriteLine("Елемент списку: " + number);
}Приклад 2: Використання List для зберігання та опрацювання списку рядків.
using System;
using System.Collections.Generic;
// Створюємо список для зберігання рядків
List<string> names = new List<string>();
// Додаємо імена до списку
names.Add("Аліса");
names.Add("Боб");
names.Add("Чарлі");
// Виводимо всі імена зі списку
foreach (string name in names)
{
Console.WriteLine("Ім'я зі списку: " + name);
}Queue (Черга):
Приклад 1: Використання Queue для симуляції черги друку.
using System;
using System.Collections.Generic;
// Створюємо чергу для друкованих завдань
Queue<string> printQueue = new Queue<string>();
// Додаємо завдання в чергу
printQueue.Enqueue("Документ1");
printQueue.Enqueue("Документ2");
printQueue.Enqueue("Документ3");
// Вибираємо і видаляємо завдання з черги в порядку черги
while (printQueue.Count > 0)
{
string nextDocument = printQueue.Dequeue();
Console.WriteLine("Друкуємо документ: " + nextDocument);
}Приклад 2: Використання Queue для симуляції черги клієнтів, які чекають на обслуговування.
using System;
using System.Collections.Generic;
// Створюємо чергу для клієнтів, які чекають на обслуговування
Queue<string> customerQueue = new Queue<string>();
// Клієнти приходять в чергу
customerQueue.Enqueue("Клієнт1");
customerQueue.Enqueue("Клієнт2");
customerQueue.Enqueue("Клієнт3");
// Обслуговуємо клієнтів у порядку черги
while (customerQueue.Count > 0)
{
string nextCustomer = customerQueue.Dequeue();
Console.WriteLine("Обслуговуємо клієнта: " + nextCustomer);
}Stack (Стек):
Приклад 1: Використання Stack для обертання порядку елементів у списку.
using System;
using System.Collections.Generic;
// Створюємо стек для обертання порядку елементів у списку
Stack<int> numbersStack = new Stack<int>();
// Додаємо числа до стеку
numbersStack.Push(1);
numbersStack.Push(2);
numbersStack.Push(3);
// Виводимо числа зі стеку (в порядку зворотнього додавання)
while (numbersStack.Count > 0)
{
int nextNumber = numbersStack.Pop();
Console.WriteLine("Число зі стеку: " + nextNumber);
}Приклад 2: Використання Stack для відстеження історії відвіданих веб-сторінок.
using System;
using System.Collections.Generic;
// Створюємо стек для відстеження історії відвіданих веб-сторінок
Stack<string> webHistory = new Stack<string>();
// Відвідуємо веб-сторінки і додаємо їх до стеку історії
webHistory.Push("Сторінка1");
webHistory.Push("Сторінка2");
webHistory.Push("Сторінка3");
// Повертаємося до попередньої сторінки зі стеку історії
string previousPage = webHistory.Pop();
Console.WriteLine("Повертаємося до сторінки: " + previousPage);build info
- compiler
- 2.0.5.1 · 4054EF9BF6C4510A
- built
- 2026-11-08 14:31:25 UTC
WebUniverse