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

insert():

Класс Dart List предоставляет метод insert, который позволяет вам вставлять элемент по определенному индексу в списке. Этот метод может быть полезен, когда вы хотите добавить элемент в список в определенной позиции, не перезаписывая существующие элементы.

Синтаксис

Вот синтаксис метода insert:

dartCopy code
void insert(int index, E element)

Параметр index — это позиция, в которую вы хотите вставить element. Параметр element — это объект, который вы хотите вставить в список.

Примеры

Давайте рассмотрим несколько примеров использования метода insert.

Пример 1: Вставка одного элемента

В этом примере мы создадим список чисел и вставим новый номер во вторую позицию в списке:

dartCopy code
void main() {
  var numbers = [1, 3, 4, 5];
  numbers.insert(1, 2);
  print(numbers); // [1, 2, 3, 4, 5]
}

Здесь мы создаем список чисел и вызываем для него метод insert, чтобы вставить число 2 во вторую позицию (индекс 1) в списке.

Пример 2: Вставка нескольких элементов

В этом примере мы создадим список цветов и вставим два новых цвета на третью позицию в списке:

dartCopy code
void main() {
  var colors = ['red', 'green', 'blue'];
  colors.insertAll(2, ['yellow', 'purple']);
  print(colors); // ['red', 'green', 'yellow', 'purple', 'blue']
}

Здесь мы создаем список цветов и вызываем для него метод insertAll, чтобы вставить два новых цвета ('yellow' и 'purple') в третью позицию (индекс 2) в списке.

Пример 3: Вставка элемента в конец списка

В этом примере мы создадим список букв и вставим новую букву в конец списка:

dartCopy code
void main() {
  var letters = ['a', 'b', 'c'];
  letters.insert(letters.length, 'd');
  print(letters); // ['a', 'b', 'c', 'd']
}

Здесь мы создаем список букв и вызываем для него метод insert, чтобы вставить букву 'd' в конец списка.

Метод insert в классе Dart List позволяет вставлять элемент по определенному индексу в список. Это может быть полезно, когда вы хотите добавить элемент в список в определенной позиции, не перезаписывая существующие элементы.

map():

В Dart класс List предоставляет метод map(), который позволяет применять функцию к каждому элементу списка и возвращать новый список с преобразованными значениями. Этот метод полезен, когда вы хотите преобразовать список в другой список той же длины, где каждый элемент каким-то образом изменен.

Синтаксис

Синтаксис метода map():

dartCopy code
List<R> map<R>(R Function(E) f)

Метод map() принимает в качестве аргумента функцию f, которая применяется к каждому элементу E в исходном списке. Возвращаемое значение функции f используется для создания нового списка типа R.

Пример

Вот пример использования метода map() для преобразования списка целых чисел в список строк:

dartCopy code
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  List<String> strings = numbers.map((number) => 'Number $number').toList();
  print(strings); // Output: [Number 1, Number 2, Number 3, Number 4, Number 5]
}

В этом примере метод map() используется для применения функции, которая добавляет префикс «Число» к каждому элементу в списке numbers. Полученный список строк выводится на консоль.

Тематическое исследование

Допустим, у нас есть список объектов Person, где каждый объект Person имеет name и age. Мы хотим преобразовать этот список в список String, где каждый String представляет name и age человека в удобочитаемом формате.

dartCopy code
class Person {
  String name;
  int age;
  
  Person(this.name, this.age);
}
void main() {
  List<Person> people = [
    Person('Alice', 25),
    Person('Bob', 30),
    Person('Charlie', 35),
  ];
  
  List<String> descriptions = people.map((person) => '${person.name} (${person.age})').toList();
  print(descriptions); // Output: [Alice (25), Bob (30), Charlie (35)]
}

В этом примере мы определяем класс Person с полями name и age. Затем мы создаем список объектов Person и применяем метод map(), чтобы преобразовать его в список String, содержащих имя и возраст каждого человека.

Метод map() — это мощный инструмент для преобразования списков в Dart. Это позволяет вам легко применять функцию к каждому элементу в списке и создавать новый список с преобразованными значениями. Используя метод map(), вы можете писать более лаконичный и читаемый код, который легче поддерживать.

Метод Дарта sublist:

Метод Dart sublist используется для возврата нового списка, содержащего часть существующего списка. Часть списка определяется двумя аргументами: начальным индексом и конечным индексом.

Синтаксис использования метода sublist следующий:

sqlCopy code
List<E> sublist(int start, [int? end])

где E — тип элементов в списке, start — начальный индекс части списка, которую нужно включить (включительно), а end — конечный индекс части списка, которую нужно включить (исключая).

Если end не указано, подсписок будет включать все элементы, начиная с start до конца списка.

Примеры

Вот несколько примеров кода, демонстрирующих, как работает метод sublist.

Пример 1: Основное использование

csharpCopy code
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  List<int> sublist = numbers.sublist(2, 4);
  print(sublist); // Output: [3, 4]
}

В этом примере у нас есть список целых чисел с именем numbers. Затем мы вызываем метод sublist в этом списке и передаем аргументы 2 и 4. Это создаст новый список, содержащий элементы с индексами 2 и 3 (т. е. значения 3 и 4). Этот новый список назначается переменной sublist, которую мы затем выводим на консоль.

Пример 2. Отсутствие аргумента end

javascriptCopy code
void main() {
  List<String> fruits = ['apple', 'banana', 'cherry', 'durian', 'elderberry'];
  List<String> sublist = fruits.sublist(2);
  print(sublist); // Output: [cherry, durian, elderberry]
}

В этом примере у нас есть список строк с именем fruits. Затем мы вызываем метод sublist для этого списка и передаем аргумент 2, что означает, что мы хотим начать подсписок с индекса 2 (т. е. со значением 'cherry'). Поскольку мы не предоставляем аргумент end, подсписок будет включать все элементы от индекса 2 до конца списка. Этот новый список назначается переменной sublist, которую мы затем выводим на консоль.

Практический пример: нумерация страниц

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

csharpCopy code
void main() {
  List<int> allItems = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  int itemsPerPage = 5;
  int currentPage = 2;
  List<int> currentPageItems = allItems.sublist((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage);
  print(currentPageItems); // Output: [6, 7, 8, 9, 10]
}

В этом примере у нас есть список целых чисел с именем allItems, и мы хотим отобразить их группами по 5. Затем мы определяем переменную с именем itemsPerPage и устанавливаем для нее значение 5. Затем мы определяем переменную называется currentPage и устанавливает для него значение 2, указывая на то, что мы хотим отобразить вторую страницу элементов.

Чтобы получить элементы для текущей страницы, мы используем метод sublist() в списке allItems. Метод sublist() принимает два аргумента: начальный индекс и конечный индекс (исключающий). В этом случае мы вычисляем начальный индекс, умножая (currentPage - 1) на itemsPerPage (что дает нам индекс первого элемента на текущей странице), и мы вычисляем конечный индекс, умножая currentPage на itemsPerPage (что дает нам индекс первого элемента). пункт на следующей странице).

Наконец мы печатаем список currentPageItems, содержащий элементы для текущей страницы.

Использование метода sublist() для разбивки на страницы является распространенным шаблоном в веб-разработке. Например, при создании блога или новостного веб-сайта вы можете использовать метод sublist() для отображения определенного количества статей на странице. Когда пользователь нажимает номер страницы или кнопку «Далее», вы можете обновить переменную currentPage и пересчитать список currentPageItems, используя метод sublist().

Практический пример: использование sublist в новостном приложении

Предположим, вы разрабатываете новостное приложение, которое отображает новостные статьи из различных категорий, таких как спорт, технологии и развлечения. У вас есть список статей, и вы хотите отображать на экране только статьи из определенной категории. Вы можете использовать метод sublist для создания нового списка, содержащего только статьи из этой категории.

Вот пример реализации этой функции:

dartCopy code
class Article {
  final String title;
  final String category;
  Article(this.title, this.category);
}
void main() {
  final List<Article> articles = [
    Article("Apple launches new iPhone", "Technology"),
    Article("Real Madrid wins La Liga", "Sports"),
    Article("Taylor Swift releases new album", "Entertainment"),
    Article("Google unveils new search algorithm", "Technology"),
    Article("Manchester City wins Premier League", "Sports"),
    Article("Netflix announces new TV series", "Entertainment"),
  ];
  final String selectedCategory = "Technology";
  final List<Article> filteredArticles =
      articles.where((a) => a.category == selectedCategory).toList();
  // Display the filtered articles
  print("Articles in $selectedCategory:");
  filteredArticles.forEach((a) => print(a.title));
}

В этом примере у нас есть список из Article объектов, каждый из которых имеет заголовок и категорию. Мы хотим отображать только статьи из определенной категории, поэтому используем метод where для фильтрации списка и создания нового списка, содержащего только статьи из выбранной категории. Наконец, мы отображаем отфильтрованные статьи, перебирая список и печатая заголовок каждой статьи.

мы изучили метод sublist в Dart, который позволяет вам создать новый список, содержащий ряд элементов из существующего списка. Мы рассмотрели синтаксис метода, его параметры и возвращаемое значение, а также рассмотрели реальный пример того, как этот метод можно использовать в новостном приложении. Поняв метод sublist, вы сможете добавить в свои приложения Dart мощные возможности для работы со списками.

Заключение:

Класс Dart List предлагает множество методов для работы со списками, что позволяет разработчикам создавать более лаконичный и читаемый код. Используя эти методы, разработчики могут легко добавлять элементы в списки, преобразовывать элементы списков в новые списки и извлекать часть существующего списка. Являетесь ли вы новичком или опытным разработчиком, класс List в Dart предоставляет необходимые инструменты для работы со списками.