Введение в наборы данных
| English | Русский |
|---|---|
| data structure/ˈdeɪtə ˈstrʌktʃə/ | структура данных |
| array/əˈreɪ/ | массив (array) |
Множественные значения, одно имя
- Часто требуется хранить множество значений — баллы целого класса, список имен.
- Одна переменная хранит одно значение; структура данных хранит набор.
- Одно имя (
scores) плюс индекс или позиция позволяют обратиться к каждому значению. - Наборы позволяют одному циклу обработать все значения сразу.
Массивы и списки
- Массив — это фиксированная по размеру коллекция значений одного типа.
- ArrayList — это динамический список, который может расширяться и уменьшаться при добавлении или удалении элементов.
- Оба типа хранят множество значений под одним именем и позволяют перебирать их.
- В Разделе 4 строятся алгоритмы на основе обоих типов.
Почему циклы любят наборы
- Сочетание набора и цикла лежит в основе почти каждой задачи с данными.
- «Сложить все баллы», «найти максимальный», «подсчитать количество passes» — всё это один цикл.
- Паттерны накопителей/максимумов/счетчиков из Раздела 2 применяются напрямую.
- Без наборов потребовалась бы отдельная переменная для каждого значения.
От 1D к 2D
- Одномерная коллекция — это простая линия значений.
- Двумерный (2-D) массив хранит сетку (строки и столбцы) — как электронная таблица или доска.
- Вложенные циклы (Раздел 2) обходят двумерную (2-D) сетку.
- Раздел 4 последовательно рассматривает массивы, ArrayList и двумерные (2-D) массивы.
Набор хранит множество значений, но вы все равно обращаетесь к каждому через его позицию. Для массива это индекс (scores[i]); для ArrayList — get(i). Выберите правильную структуру: фиксированный массив, если количество известно, ArrayList, если оно растет или уменьшается. Цикл — это то, что делает набор мощным инструментом.
Хранение тестовых баллов:
- Одно значение:
int score = 85;— только один студент. - Коллекция:
int[] scores = {85, 90, 78};— весь класс одним именем. - Затем цикл может просуммировать, найти среднее или выполнить поиск по всем им.
Структура данных хранит коллекцию значений под одним именем, доступ к которым осуществляется по индексу или позиции, поэтому цикл может обработать их все. Массив имеет фиксированный размер и одинаковый тип элементов; ArrayList изменяем по размеру. Раздел 4 строит алгоритмы на основе массивов, ArrayList и двумерных (2-D) массивов.
Набор значений под одним именем
массив содержит много значений; индекс обращается к каждому из них.
Структура, которая хранит множество значений одного типа под одним именем, это...
Массив — это фиксированного размера коллекция одного типа.
Какая структура может расширяться и сжиматься при добавлении или удалении элементов?
ArrayList изменяем по размеру; обычный массив имеет фиксированный размер.
Закономерность за почти каждой задачей с данными — это коллекция плюс...
Цикл обрабатывает каждое значение в коллекции.
Массив 2-мерного измерения хранит значения в виде сетки строк и столбцов.
Как таблица или доска; для обхода используются вложенные циклы.
Вы обращаетесь к значению в массиве по его ___ (одно слово, номер позиции).
Индекс — это позиция значения в массиве.