Поиск и сортировка списков
Поиск, contains, indexOf и сортировка
«Поиск и сортировка списков» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
Поиск элементов
Списки позволяют быстро задавать вопросы об их содержимом: существует ли элемент и где он находится. Давайте изучим поиск. 🔍
Содержит ли список элемент?
Метод contains возвращает true или false и сообщает, содержится ли значение где-либо в списке.
var pets = ['cat', 'dog'];
print(pets.contains('dog')); // trueГде находится элемент?
Используйте indexOf, чтобы найти позицию элемента. Метод возвращает индекс первого совпадения или -1, если значение отсутствует.
print(pets.indexOf('dog')); // 1Отсутствующий элемент означает минус один
Если indexOf не может найти значение, он возвращает -1. Проверка на -1 — простой способ обработать отсутствующие элементы.
print(pets.indexOf('fish')); // -1Первое совпадение по правилу
Выполняйте поиск по условию с помощью firstWhere. Метод возвращает первый элемент, для которого Ваша функция проверки возвращает true.
var nums = [3, 8, 5];
print(nums.firstWhere((n) => n > 4)); // 8Любой и каждый
Быстро задавайте общие вопросы. any возвращает true, если подходит хотя бы один элемент, а «каждый» — только если подходят все.
print(nums.any((n) => n > 7)); // trueСортировка на месте
Метод sort изменяет порядок элементов самого списка — по умолчанию от меньшего к большему. Он изменяет исходный список и ничего не возвращает.
var scores = [3, 1, 2];
scores.sort();
print(scores); // [1, 2, 3]Сортировка строк
Вызов sort для текста по умолчанию упорядочивает его по алфавиту, сравнивая символы слева направо.
var names = ['Bea', 'Al', 'Cy'];
names.sort(); // [Al, Bea, Cy]Собственный порядок сортировки
Передайте компаратор, чтобы сортировать по собственному правилу. Верните отрицательное число, чтобы поставить a перед b, или положительное — чтобы поменять их местами.
scores.sort((a, b) => b - a); // descendingОбращение списка
Свойство reversed возвращает представление списка в обратном порядке. Оберните его в toList, если Вам нужен настоящий перевёрнутый список.
print(scores.reversed.toList());lastIndexOf
Если есть повторяющиеся элементы, lastIndexOf находит позицию последнего совпадения, а не первого.
var bits = [1, 0, 1];
print(bits.lastIndexOf(1)); // 2Быстрая проверка
Вы вызываете indexOf для отсутствующего значения. Что вернётся?
Итоги
Теперь Вы умеете исследовать и упорядочивать списки: использовать contains, indexOf, firstWhere, any и sort с собственными правилами. Работа с данными стала доступнее! 📊
Часто задаваемые вопросы
Урок «Поиск и сортировка списков» бесплатный?
Да — полный текст урока «Поиск и сортировка списков» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Поиск и сортировка списков»?
Поиск, contains, indexOf и сортировка Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Поиск и сортировка списков»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Создание списков и индексация
- Добавление, удаление и обновление элементов
- Поиск и сортировка списков
- Преобразование с помощью map, where и toList