Список абстрактный класс
Индексируемое множество объектов с длиной.
Подклассы этого класса реализуют различные типы списков. Наиболее распространённые типы списков:
-
Список фиксированной длины. При попытке использовать операции, которые могут изменить длину списка, возникает ошибка.
-
Изменяемый список. Полная реализация API, определённого в этом классе.
По умолчанию изменяемый список, возвращаемый new List() или [], сохраняет внутренний буфер и увеличивает его при необходимости. Это гарантирует, что последовательность операций add будет выполняться в среднем за постоянное время. Непосредственное задание длины может занять время, пропорциональное новой длине, и может изменить внутреннюю ёмкость таким образом, что последующая операция add потребует немедленного увеличения ёмкости буфера. Другие реализации списков могут иметь другое поведение производительности.
Следующий код иллюстрирует, что некоторые реализации List поддерживают только подмножество API.
List<int> fixedLengthList = new List(5); fixedLengthList.length = 0; // Error fixedLengthList.add(499); // Error fixedLengthList[0] = 87; List<int> growableList = [1, 2]; growableList.length = 0; growableList.add(499); growableList[0] = 87;
Списки являются Iterable. Итерация происходит по значениям в порядке индексов. Изменение значений не влияет на итерацию, но изменение допустимых индексов — то есть изменение длины списка — между шагами итерации приводит к ConcurrentModificationError. Это означает, что только изменяемые списки могут выбрасывать ConcurrentModificationError. Если длина временно изменяется и восстанавливается до продолжения итерации, итератор этого не обнаруживает.
Обычно не допускается изменение длины списка (добавление или удаление элементов) во время выполнения операции над списком, например, во время вызова forEach или sort. Изменение длины списка во время его итерации, как непосредственно, так и через итерацию Iterable, которая поддерживается списком, нарушит итерацию.
- Реализует
-
- EfficientLengthIterable<E>
- Реализуется в
- AudioTrackList
- DomStringList
- FileList
- Float32List
- Float32x4List
- Float64List
- Float64x2List
- HtmlCollection
- ImmutableListMixin
- Int16List
- Int32List
- Int32x4List
- Int64List
- Int8List
- LengthList
- ListMixin
- MimeTypeArray
- NodeList
- NumberList
- PluginArray
- SourceBufferList
- SpeechGrammarList
- SqlResultSetRowList
- StringList
- TextTrackCueList
- TextTrackList
- TouchList
- TransformList
- Uint16List
- Uint32List
- Uint64List
- Uint8ClampedList
- Uint8List
Конструкторы
- List([int length ]) factory
-
Создаёт список заданной длины.
- List.filled(int length, E fill, { bool growable: false }) factory
-
Создаёт список фиксированной длины заданной длины, и инициализирует значение в каждой позиции со значением
fill: - List.from(Iterable elements, { bool growable: true }) factory
-
Создаёт список, содержащий все
elements. - List.generate(int length, E generator(int index), { bool growable: true }) factory
-
Генерирует список значений.
- List.unmodifiable(Iterable elements) factory
-
Создаёт неизменяемый список, содержащий все
elements.
Свойства
- length → int чтение/запись
-
Возвращает количество объектов в этом списке.
- reversed → Iterable<E> только для чтения
-
Возвращает
Iterableобъектов в этом списке в обратном порядке. - first → E только для чтения, унаследованное
-
Возвращает первый элемент.
- hashCode → int только для чтения, унаследованное
-
Хеш-код для этого объекта.
- isEmpty → bool только для чтения, унаследованное
-
Возвращает
trueесли в этом наборе нет элементов. - isNotEmpty → bool только для чтения, унаследованное
-
Возвращает true, если в этом наборе есть хотя бы один элемент.
- iterator → Iterator<E> только для чтения, унаследованное
-
Возвращает новый
Iterator, который позволяет итерировать элементы этогоIterable. - last → E только для чтения, унаследованное
-
Возвращает последний элемент.
- runtimeType → Type только для чтения, унаследованное
-
Представление типа объекта во время выполнения.
- single → E только для чтения, унаследованное
-
Проверяет, что в этом итерируемом наборе есть только один элемент, и возвращает этот элемент.
Операторы
- operator [](
int index) → E -
Возвращает объект по заданному
indexв списке или выбрасывает RangeError, еслиindexнаходится за пределами границ. - operator []=(
int index, E value) → void -
Устанавливает значение по заданному
indexв списке наvalueили выбрасывает RangeError, еслиindexнаходится за пределами границ. - operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы
- add(
E значение) → void -
Добавляет
valueв конец этого списка, увеличивая его длину на единицу. - addAll(
Iterable<E> итерируемый) → void -
Добавляет все объекты из
iterableв конец этого списка. - asMap(
) → Map<int, E> -
Возвращает неизменяемый вид Map
this. - clear(
) → void -
Удаляет все объекты из этого списка; длина списка становится нулевой.
- fillRange(
int начало, int конец, [ E значениеЗаполнения ]) → void -
Устанавливает объекты в диапазоне
startвключительно доendне включительно заданномуfillValue. - getRange(
int начало, int конец) → Iterable<E> -
Возвращает Iterable, который перебирает объекты в диапазоне
startвключительно доendне включительно. - indexOf(
E элемент, [ int начало = 0 ]) → int -
Возвращает первый индекс
elementв этом списке. - insert(
int индекс, E элемент) → void -
Вставляет объект в позицию
indexв этот список. - insertAll(
int индекс, Iterable<E> итерируемый) → void -
Вставляет все объекты из
iterableв позициюindexв этот список. - lastIndexOf(
E элемент, [ int начало ]) → int -
Возвращает последний индекс
elementв этом списке. - remove(
Object значение) → bool -
Удаляет первое вхождение
valueиз этого списка. - removeAt(
int индекс) → E -
Удаляет объект в позиции
indexиз этого списка. - removeLast(
) → E -
Извлекает и возвращает последний объект в этом списке.
- removeRange(
int начало, int конец) → void -
Удаляет объекты в диапазоне
startвключительно доendне включительно. - removeWhere(
bool тест(E элемент)) → void -
Удаляет все объекты из этого списка, которые удовлетворяют
test. - replaceRange(
int начало, int конец, Iterable<E> замена) → void -
Удаляет объекты в диапазоне
startвключительно доendне включительно и вставляет содержимоеreplacementна его место. - retainWhere(
bool тест(E элемент)) → void -
Удаляет все объекты из этого списка, которые не удовлетворяют
test. - setAll(
int индекс, Iterable<E> итерируемый) → void -
Заменяет объекты
thisна объектыiterable, начиная с позицииindexв этом списке. - setRange(
int начало, int конец, Iterable<E> итерируемый, [ int пропускСчетов = 0 ]) → void -
Копирует объекты из
iterable, пропускаяskipCountобъектов сначала, в диапазонstart, включительно, доend, не включительно, списка. - shuffle(
[Random случайность ]) → void -
Случайно перемешивает элементы этого списка.
- sort(
[int сравнение(E a, E b) ]) → void -
Сортирует этот список в соответствии с порядком, заданным функцией
compare. - sublist(
int начало, [ int конец ]) → List<E> -
Возвращает новый список, содержащий объекты от
startвключительно доendне включительно. - any(
bool f(E элемент)) → bool inherited -
Проверяет, удовлетворяет ли какой-либо элемент этого итерируемого объекта
test. - contains(
Object элемент) → bool inherited -
Возвращает true, если коллекция содержит элемент, равный
element. - elementAt(
int индекс) → E inherited -
Возвращает
index-й элемент. - every(
bool f(E элемент)) → bool inherited -
Проверяет, удовлетворяет ли каждый элемент этого итерируемого объекта
test. - expand<T>(
Iterable<T> f(E элемент)) → Iterable<T> inherited -
Расширяет каждый элемент этого Iterable на ноль или более элементов.
- firstWhere(
bool тест(E элемент), { E илиElse() }) → E inherited -
Возвращает первый элемент, удовлетворяющий заданному предикату
test. - fold<T>(
T начальноеЗначение, T комбинировать(T предыдущееЗначение, E элемент)) → T inherited -
Приводит коллекцию к единственному значению, итеративно комбинируя каждый элемент коллекции с существующим значением.
- forEach(
void f(E элемент)) → void inherited -
Применяет функцию
fк каждому элементу этой коллекции в порядке итерации. - join(
[String разделитель = "" ]) → String inherited -
Преобразует каждый элемент в String и конкатенирует строки.
- lastWhere(
bool тест(E элемент), { E илиElse() }) → E inherited -
Возвращает последний элемент, удовлетворяющий заданному предикату
test. - map<T>(
T f(E e)) → Iterable<T> inherited -
Возвращает новый ленивый Iterable с элементами, созданными путем вызова
fдля каждого элемента этогоIterableв порядке итерации. - noSuchMethod(
Invocation вызов) → dynamic inherited -
Вызывается при попытке доступа к несуществующему методу или свойству.
- reduce(
E комбинировать(E значение, E элемент)) → E inherited -
Приводит коллекцию к единственному значению, итеративно комбинируя элементы коллекции с помощью предоставленной функции.
- singleWhere(
bool тест(E элемент)) → E inherited -
Возвращает единственный элемент, удовлетворяющий
test. - skip(
int количество) → Iterable<E> inherited -
Возвращает Iterable, который предоставляет все, кроме первых
countэлементов. - skipWhile(
bool тест(E значение)) → Iterable<E> inherited -
Возвращает
Iterable, который пропускает начальные элементы, покаtestвыполняется. - take(
int количество) → Iterable<E> inherited -
Возвращает ленивый итерируемый объект первых
countэлементов этого итерируемого объекта. - takeWhile(
bool тест(E значение)) → Iterable<E> inherited -
Возвращает ленивый итерируемый объект начальных элементов, удовлетворяющих
test. - toList(
{bool изменяемый: true }) → List<E> inherited - toSet(
) → Set<E> inherited -
Создает Set, содержащий те же элементы, что и этот итерируемый объект.
- toString(
) → String inherited -
Возвращает строковое представление этого объекта.
- where(
bool test(E element)) → Iterable<E> inherited -
Возвращает новый ленивый Iterable со всеми элементами, которые удовлетворяют предикату
test.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/List-class.html