Коллекция

Уменьшите потребление памяти существующими и новыми небольшими коллекциями.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
14 января 2026 г. 1.5.0 - 1.6.0-beta01 -

Объявление зависимостей

Чтобы добавить зависимость от Collection, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    def collection_version = "1.5.0"
    implementation "androidx.collection:collection:$collection_version"
}

Котлин

dependencies {
    val collection_version = "1.5.0"
    implementation("androidx.collection:collection:$collection_version")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.6

Версия 1.6.0-beta01

14 января 2026 г.

Выпущена версия androidx.collection:collection-*:1.6.0-beta01 . Версия 1.6.0-beta01 содержит следующие коммиты .

Изменения в API

  • Добавлены расширения .toScatterSet() и .toScatterMap() . Они предоставляют альтернативу функциям преобразования с возможностью только чтения и возвращают синглтоны, не требующие выделения памяти, когда исходная коллекция пуста. ( I1769a , b/459867876 )
  • Замените псевдоконструкторы MutableScatterMap(source) и MutableScatterSet(source) стандартными функциями расширения .toMutableScatterMap() и .toMutableScatterSet() . Это соответствует соглашениям Kotlin по преобразованию коллекций. ( Ic9ca6 , b/459867876 )
  • Добавьте фабричные функции MutableScatterMap(Map) и MutableScatterSet(Set) . Используйте эти функции для простого создания коллекции с разбросанными данными, предварительно заполненной содержимым существующей коллекции. ( I51d70 )

Исправлены ошибки

  • В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) ( I05181 , b/326456246 )

Версия 1.6.0-alpha01

27 августа 2025 г.

Выпущена версия androidx.collection:collection-*:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит следующие коммиты .

Изменения в API

  • Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия ( Idb6b5 ).

Исправлены ошибки

  • Ранее SparseArrayCompat возвращал null для valueAt и keyAt когда передавался индекс, находящийся в пределах выделенного диапазона, но за пределами диапазона вставки 0..size -1 . Как было указано в документации, такое поведение никогда не ожидалось и выходило за пределы допустимого диапазона ввода, и это изменение исправляет ситуацию, вместо этого выдавая исключение IndexOutOfBounds при передаче недопустимого индекса. ( I68453 )

Внешний вклад

Благодарим Джейка Уортона за следующие материалы:

  • Приведите поведение функции joinToString в соответствие с платформенными коллекциями, добавив разделитель перед и суффикс после индикатора усечения при ограничении количества включаемых элементов. ( I1b7e8 )
  • ScatterSet.hashCode больше не защищает от рекурсии (т.е. от сложения множества с самим собой). Это приводит его поведение в соответствие с ScatterMap , HashSet и примитивными множествами на основе разброса (например, LongSet ). Следует отметить, что метод equals уже был подвержен рекурсии, а toString защищает от нее — оба эти поведения соответствуют другим коллекциям. ( I9c84a )
  • Функция ScatterSet.retainAll теперь встроена в код, чтобы избежать создания экземпляра лямбда-функции. ( Ifa4b7 )
  • ScatterSet.hashCode больше не использует свою емкость при вычислении хеша, обеспечивая одинаковое содержимое, но разные емкости по-прежнему дают одинаковое значение. ( Ic863b )
  • Теперь IllegalStateException выбрасывается, если вы вызываете remove() перед next() для итератора коллекций keys , values или entries ScatterMap.asMap() или ScatterSet.asSet() . Это приводит его поведение в соответствие с обычным поведением map и set. ( I71694 )

Версия 1.5

Версия 1.5.0

12 марта 2025 г.

Выпущена версия androidx.collection:collection-*:1.5.0 . Версия 1.5.0 содержит следующие коммиты .

Версия 1.5.0-rc01

26 февраля 2025 г.

Выпущена версия androidx.collection:collection-*:1.5.0-rc01 . Версия 1.5.0-rc01 содержит следующие коммиты .

Версия 1.5.0-beta03

29 января 2025 г.

Выпущена версия androidx.collection:collection-*:1.5.0-beta03 . Версия 1.5.0-beta03 содержит следующие коммиты .

Версия 1.5.0-beta02

15 января 2025 г.

Выпущена версия androidx.collection:collection-*:1.5.0-beta02 . Версия 1.5.0-beta02 содержит следующие коммиты .

Версия 1.5.0-beta01

11 декабря 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-beta01 . Версия 1.5.0-beta01 содержит следующие коммиты .

Изменения в API

  • Добавлена ​​поддержка целевых платформ watchosDeviceArm64 KMP и kotlin 1.9 ( Icf15d , b/364652024 )

Версия 1.5.0-alpha06

13 ноября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha06 . Версия 1.5.0-alpha06 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой могли возникать сбои в SieveCache и OrderedScatterSet при добавлении большого количества элементов, вызывающие повторные конфликты клавиш. ( Iaaf3d , b/375607736 )
  • Добавить цель wasm в библиотеку коллекций. ( I66fe3 , b/352722444 )

Версия 1.5.0-alpha05

30 октября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha05 . Версия 1.5.0-alpha05 содержит следующие коммиты .

Версия 1.5.0-alpha04

16 октября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha04 . Версия 1.5.0-alpha04 содержит следующие коммиты .

Версия 1.5.0-alpha03

2 октября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha03 . Версия 1.5.0-alpha03 содержит следующие коммиты .

Изменения в API

  • Обновление версии Kotlin до 1.9 ( I1a14c )

Внешний вклад

  • Forward contains to containsKey . Спасибо, Джейк Уортон! ( I9362b )
  • Добавлены конструкторы контейнеров для коллекций, специализирующихся на скалярных значениях. Спасибо Джейку Уортону! ( I13179 )

Версия 1.5.0-alpha02

18 сентября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha02 . Версия 1.5.0-alpha02 содержит следующие коммиты .

Изменения в API

  • Добавлена ​​поддержка платформы watchosDeviceArm64 . ( I1cc04 , b/364652024 )

Версия 1.5.0-alpha01

4 сентября 2024 г.

Выпущена версия androidx.collection:collection-*:1.5.0-alpha01 . Версия 1.5.0-alpha01 содержит следующие коммиты .

Изменения в API

  • OrderedScatterSet — это новая упорядоченная коллекция, не требующая выделения памяти ( Ic4178 ).
  • SieveCache — это новая альтернатива LruCache , не требующая выделения памяти, которая предлагает лучшие характеристики коэффициента попаданий. ( I50a17 )
  • Представлено внутреннее представление packedValue для IntIntPair и FloatFloatPair . ( Ifeb75 , b/331853566 )
  • Добавление доступа к массиву содержимого в коллекциях списков. ( I899d5 , b/333903173 )
  • Добавьте DoubleList — структуру данных, похожую на список, оптимизированную для значений типа Double. ( Ia10d1 , b/315127635 )

Исправлены ошибки

  • Библиотека коллекций переходит на целевую платформу Kotlin 1.9 ( I0782f )
  • Оптимизировать многие из коллекций для повышения их эффективности. ( Ic0566 )

Версия 1.4

Версия 1.4.5

30 октября 2024 г.

Выпущена версия androidx.collection:collection-*:1.4.5 . Версия 1.4.5 содержит следующие коммиты .

Версия 1.4.4

18 сентября 2024 г.

Выпущена версия androidx.collection:collection-*:1.4.4 . Версия 1.4.4 содержит следующие коммиты .

Исправлены ошибки

  • Обходной путь для ошибки ArrayIndexOutOfBounds при сортировке пустой коллекции. ( I65245 )

Версия 1.4.3

7 августа 2024 г.

Выпущена версия androidx.collection:collection-*:1.4.3 . Версия 1.4.3 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​ошибка, которая могла возникать в ScatterMap , ScatterSet и их примитивных вариантах. ( I38a4a , b/352560465 )
  • Оптимизация производительности. В частности:
    • Замените вызовы функций check() и required() вариантами, которые не встраивают генерацию исключений. Это уменьшит итоговый размер исполняемого файла и, что более важно, немного снизит нагрузку на кэш инструкций.
    • Улучшена removeDeletedMarkers() в семействе коллекций "scatter". Новая версия удаляет маркеры по 8 за раз и пропускает более ресурсоемкие операции записи. ( Ic0566 )

Версия 1.4.2

24 июля 2024 г.

Выпущена версия androidx.collection:collection-*:1.4.2 . Версия 1.4.2 содержит следующие коммиты .

Новые функции

  • Включает дополнительные многоплатформенные цели Kotlin: watchos , tvos , linuxArm64 . ( b/352543988 )

Версия 1.4.1

10 июля 2024 г.

Выпущена версия androidx.collection:collection-*:1.4.1 . Версия 1.4.1 содержит следующие коммиты .

Исправлены ошибки

  • Удалять удалённые надгробия из карты/набора при изменении размера. ( 7a996c5 , b/345960092 )

Версия 1.4.0

24 января 2024 г.

Выпущена androidx.collection:collection-*:1.4.0 . Версия 1.4.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.3.0

Добавлены новые высокоэффективные коллекции для хранения примитивов без упаковки:

  • MutableScatterMap и ScatterMap — классы с поддержкой MutableMap и API, аналогичным Map.
  • MutableScatterSet и ScatterSet — классы с API, использующими MutableSet и Set-подобные методы.
  • MutableObjectList и ObjectList — классы с поддержкой MutableList и API, аналогичным спискам.

Например, карта с целочисленным ключом и значением ссылочного типа — это IntObjectMap<T> . Карта с длинным ключом и значением типа float — это LongFloatMap . Версии с именем ObjectObjectMap не существует, поскольку она относится к классам ScatterMap/MutableScatterMap .

Версия 1.4.0-rc01

10 января 2024 г.

Выпущена androidx.collection:collection-*:1.4.0-rc01 без изменений. Версия 1.4.0-rc01 содержит следующие коммиты.

Версия 1.4.0-beta02

29 ноября 2023 г.

Выпущена androidx.collection:collection-*:1.4.0-beta02 . Версия 1.4.0-beta02 содержит следующие коммиты.

Новые функции

  • Улучшена производительность функции FloatFloatPair . ( If5537 )

Исправлены ошибки

  • Итератор ScatterMap.asMap() теперь возвращает новые экземпляры ( I28932 , b/310365754 )

Версия 1.4.0-beta01

15 ноября 2023 г.

Выпущена версия androidx.collection:collection-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие коммиты.

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой ListIterator некорректно устанавливал значения в ObjectList , что могло привести к сбою из-за IndexOutOfBoundsException . ( I3bd8a , b/307049391 )

Версия 1.4.0-alpha02

18 октября 2023 г.

Выпущена androidx.collection:collection-*:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит следующие коммиты.

Изменения в API

  • Добавлена ​​перегрузка для put , которая возвращает предыдущее значение при замене во всех примитивных коллекциях, таких как FloatFloatMap .
  • Преобразуйте методы removeIf в примитивных коллекциях, таких как MutableFloatFloatMap в встроенные методы. Это гарантирует, что лямбда-функция для removeIf не будет выделена.

Версия 1.4.0-alpha01

4 октября 2023 г.

Выпущена androidx.collection:collection-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты.

Новые функции

Добавлены новые высокоэффективные сборки мусора с низкими затратами на выделение памяти и высокой производительностью:

  • MutableScatterMap и ScatterMap — классы с поддержкой MutableMap и API, аналогичным Map.
  • MutableScatterSet и ScatterSet — классы с API, использующими MutableSet и Set-подобные методы.
  • MutableObjectList и ObjectList — классы с поддержкой MutableList и API, аналогичным спискам.

Добавлены новые высокоэффективные коллекции для хранения примитивов без упаковки:

  • Mutable[Int|Float|Long]List — классы с API, аналогичным MutableList<Int|Float|Long> . Также существует [Int|Float|Long]List только для чтения. Например, целые числа могут храниться в IntList .
  • Mutable[Int|Float|Long]Set — классы с API, аналогичным MutableSet<Int|Float|Long> . Также существует [Int|Float|Long]Set доступный только для чтения. Например, целые числа могут храниться в IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map — классы с API, подобным Mutable<Int|Float|Long,T, Int|Float|Long|T> . Также существует доступная только для чтения [Int|Float|Long|Object][Int|Float|Long|Object]Map . Например, карта с целочисленным ключом и значением ссылочного типа — это IntObjectMap<T> . Карта с длинным ключом и значением типа float — это LongFloatMap . Версии с именем ObjectObjectMap не существует, поскольку она охватывается классами ScatterMap/MutableScatterMap .

Версия 1.3.0

Версия 1.3.0

4 октября 2023 г.

Выпущена версия androidx.collection:collection-*:1.3.0 . Версия 1.3.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.2.0

  • Теперь вы можете использовать Collections в проектах Kotlin Multiplatform. Обратите внимание, что поддержка Collections для не-Android-платформ пока находится в экспериментальной стадии, но мы решили объединить версии, чтобы разработчикам было проще их протестировать.
  • Весь исходный код был переведён на Kotlin. В рамках этого изменения многие API теперь корректно типизированы для проверки на null, а некоторые закрытые члены пакета стали internal . Точный список изменений доступен в примечаниях к минорному релизу 1.3.x ниже.
  • Вместе с миграцией на Kotlin, collection-ktx был объединен с основным артефактом коллекции. Вы можете смело отказаться от любых зависимостей от collection:collection-ktx в пользу collection:collection поскольку collection-ktx теперь пуст.

Версия 1.3.0-rc01

6 сентября 2023 г.

Выпущена androidx.collection:collection-*:1.3.0-rc01 без изменений. Версия 1.3.0-rc01 содержит следующие коммиты.

Версия 1.3.0-beta01

9 августа 2023 г.

Выпущена androidx.collection:collection-*:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты.

Версия 1.3.0-alpha04

24 марта 2023 г.

Выпущена версия androidx.collection:collection-*:1.3.0-alpha04 .

Исправлены ошибки

  • Удалены ограничения зависимостей из артефактов Maven для обхода проблемы сборки в Kotlin Native Targets ( b/274786186 , KT-57531 ).

Версия 1.3.0-alpha03

22 марта 2023 г.

Выпущена версия androidx.collection:collection-*:1.3.0-alpha03 . Версия 1.3.0-alpha03 содержит следующие коммиты.

Новые функции

  • Теперь вы можете использовать Collections в проектах KMM . Обратите внимание, что поддержка Collections для не-Android-платформ пока находится в экспериментальной стадии, но мы решили объединить версии, чтобы упростить разработчикам их тестирование.

Изменения в API

  • Теперь ArraySet реализует MutableCollections вместо AbstractMutableCollection , что позволяет более эффективно использовать память при реализации toArray ( I1ac32 ).

Исправлены ошибки

  • ArraySet.toArray теперь доступен только в JVM, поскольку он всегда был включен только для совместимости с Java. Пользователям Kotlin следует, как правило, использовать вспомогательные методы .toTypedArray из стандартной библиотеки, которые предоставляют точно такую ​​же функциональность с дополнительной типобезопасностью. ( I2c59b )

Версия 1.3.0-alpha02

27 июля 2022 г.

Выпущены androidx.collection:collection:1.3.0-alpha02 и androidx.collection:collection-ktx:1.3.0-alpha02 . Версия 1.3.0-alpha02 содержит следующие коммиты.

Изменения в API

  • SparseArrayCompat теперь доступна для платформ, отличных от JVM, из общего артефакта ( Ic9bd0 , b/219589118 , b/228347315 ).
  • Теперь CircularIntArray доступен для платформ, отличных от JVM, из общего артефакта ( I3d8ef , b/228344943 ).
  • LongSparseArray теперь доступна для платформ, отличных от JVM, из общего артефакта ( I73149 , b/228347315 ).

Версия 1.3.0-alpha01

29 июня 2022 г.

Выпущены androidx.collection:collection:1.3.0-alpha01 и androidx.collection:collection-ktx:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.

Новые функции

  • Расширения collection-ktx были перенесены в основной артефакт коллекций, androidx.collection:collection . Это изменение делает существующие расширения -ktx доступными для пользователей Kotlin без необходимости использования зависимости -ktx, сохраняя при этом совместимость для существующих пользователей. Поддержание этих расширений в отдельном артефакте -ktx больше не выгодно, поскольку основной артефакт перенесен на Kotlin. ( I6eef2 )

Изменения в API

  • Теперь ArraySet наследует AbstractMutableCollection и больше не реализует интерфейс Collection напрямую. ( If6da0 , b/230860589 )
  • Преобразование ArraySet в Kotlin. Из-за более строгих требований к типизации некоторые вызовы Kotlin могут больше не компилироваться. ( Id68c1 , b/230860589 )
    • В следующих вызовах аргумент типа T , а не T? :
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Следующие вызовы имеют тип возвращаемого значения T? а не T! :
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Следующие вызовы больше невозможны из Kotlin:
      • set.toArray() - используйте set.toTypedArray()
      • set.toArray(array) - используйте set.forEachIndexed(array::set)
  • Объедините перегруженный конструктор для SparseArrayCompat в качестве необязательного аргумента для пользователей Kotlin. ( If8407 , b/227474719 )
  • Удалён синтаксис оператора для SparseArrayCompat.get(key, defaultValue). Обратите внимание, что это по-прежнему позволяет использовать синтаксис оператора для .get(key) , но лучше согласовывает API SparseArrayCompat с другими классами этой библиотеки. ( I9a38d )
  • Перенесите расширения LongSparseArray в основной артефакт androidx.collection:collection. Это изменение делает существующие расширения -ktx доступными для пользователей Kotlin без необходимости добавления зависимости -ktx, сохраняя при этом совместимость для существующих пользователей. Поддержание этих расширений в отдельном артефакте -ktx больше не выгодно, поскольку основной артефакт перенесен на Kotlin. ( I8659a )
  • Преобразовать LongSparseArray в Kotlin. Это изменение добавляет явное указание на null для его типов, что является бинарно совместимым изменением, но может вызвать несовместимость исходного кода. В частности: * .isEmpty больше не доступен как свойство, к нему необходимо обращаться как к вызову функции в Kotlin - .isEmpty() ( Idfd0f )
  • Преобразовать SimpleArrayMap в Kotlin. Это изменение вносит ряд несовместимых изменений в результате взаимодействия Java и Kotlin и возможности корректного определения значений null для типов в исходном коде.
    • Приватные API-функции пакета, такие как .mSize , .mArray , .mHashes , .indexOf() , .indexOfNull() и .indexOfValue() , были сделаны приватными — технически это бинарно несовместимое изменение, но оно отражает предполагаемую видимость этих полей и является наиболее близким к желаемому результату в Kotlin, поскольку в нем нет способа указать видимость, приватную для пакета.
    • Теперь корректно определена возможность присвоения значения null некоторым типам, затронутые методы: .getOrDefault , .keyAt , .valueAt , .setValueAt , .put , .putIfAbsent , .removeAt , .replace .
    • Для пользователей Kotlin метод .isEmpty() теперь доступен только как функция, а не только через доступ к свойствам. ( I271b7 , b/182813986 )
  • Преобразование CircularArray в Kotlin. Заметные изменения:

    • Исправлена ​​ошибка, из-за которой его обобщенные типы теперь не являются нулевыми, что ранее было невозможно объявить, но обеспечивалось во всех его публичных API.
    • Благодаря совместимости Kotlin с Java, ранее существовала возможность доступа к некоторым методам как в качестве свойств, так и в качестве функций. Однако для уменьшения дублирования при сохранении бинарной совместимости было необходимо удалить эти методы, что является изменением, несовместимым с исходным кодом. Затронутые вызовы: .isEmpty , .getLast() и .getFirst() . ( Ifffac )
  • Преобразование CircularIntArray в Kotlin. Благодаря совместимости Kotlin с Java, ранее можно было обращаться к некоторым методам как к свойствам, так и к функциям. Однако, чтобы уменьшить дублирование при сохранении бинарной совместимости, было необходимо удалить эти методы, что является изменением, несовместимым с исходным кодом. Затронутые вызовы: .isEmpty , .getLast() и .getFirst() . ( IE36ce )

  • Преобразование LruCache в Kotlin ( Ia2f19 )

  • Преобразование SparseArrayCompat в Kotlin. ( If6fe8 )

    В метод SparseArrayCompat.valueAt() внесено небольшое изменение в поведение: теперь он не возвращает некорректный null для неинициализированных вызовов, выходящих за пределы size() , но находящихся в пределах предоставленной начальной емкости.

    Это изменение также обеспечивает корректное отображение значений null для некоторых типов, чего ранее не было.

    • .get(): E? -> .get(): E
    • .replace(Int, Int?): Int? -> .replace(Int, Int): Int?
    • .replace(Int, Int?, Int?): Boolean -> .replace(Int, Int, Int): Boolean
    • .put(Int, Int?) -> .put(Int, Int)
    • .putIfAbsent(Int, Int?): Int? -> .putIfAbsent(Int, Int): Int?
    • .setValueAt(index: Int, value: Int?) -> .setValueAt(index: Int, value: Int)
    • .indexOfValue(value: Int?): Int -> .indexOfValue(value: Int): Int
    • .containsValue(value: Int?): Boolean -> .containsValue(value: Int): Boolean
    • .append(key: Int, value: Int?) -> .append(key: Int, value: Int)

Версия 1.2.0

Версия 1.2.0

1 декабря 2021 г.

Выпущены androidx.collection:collection:1.2.0 и androidx.collection:collection-ktx:1.2.0 . Версия 1.2.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.1.0

  • Добавить конструктор массива в ArraySet . ( Id7f19 )
  • Обеспечьте соответствие API метода entrySet() путем реализации entrySet().toArray() , remove() , removeAll() и retainAll() , а также удаления реализации метода entrySet().addAll() ( I5d505 ).

Версия 1.2.0-rc01

17 ноября 2021 г.

Выпущены androidx.collection:collection:1.2.0-rc01 и androidx.collection:collection-ktx:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты.

Изменения в API

  • Изменений по сравнению с предыдущей бета-версией нет.

Версия 1.2.0-beta01

13 октября 2021 г.

Выпущены androidx.collection:collection:1.2.0-beta01 и androidx.collection:collection-ktx:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие коммиты.

Исправлены ошибки

  • Обеспечьте соответствие API метода entrySet() путем реализации entrySet().toArray() , remove() , removeAll() и retainAll() , а также удаления реализации метода entrySet().addAll() ( I5d505 ).

Версия 1.2.0-alpha01

16 декабря 2020 г.

Выпущены androidx.collection:collection:1.2.0-alpha01 и androidx.collection:collection-ktx:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты.

Изменения в API

  • Добавить конструктор массива в ArraySet . ( Id7f19 )

Версия 1.1.0

Версия 1.1.0

5 июня 2019 г.

Выпущены версии androidx.collection:collection:1.1.0 и androidx.collection:collection-ktx:1.1.0 . Список изменений, включивших версию 1.1.0, можно найти здесь .

Ниже приведено краткое описание изменений, произошедших с версии 1.0.0 до 1.1.0:

Новые функции

  • Используйте более эффективную реализацию функций contains и isNotEmpty в артефакте 'collection-ktx'. ( aosp/866529 )

изменения API

  • Добавить putIfAbsent в LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772608 )
  • Добавить getOrDefault в SimpleArrayMap ( aosp/772607 )
  • Добавлена remove с двумя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat . Соответствующие расширения KTX для этой функциональности объявлены устаревшими. ( aosp/772482 )
  • Добавлена replace с двумя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772483 )
  • Добавлена replace с тремя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772484 )
  • Устаревшие методы delete . Метод remove предлагает тот же API и функциональность и соответствует API, используемому неспециализированными картами. ( aosp/866053 )

Исправлены ошибки

  • Измените SimpleArrayMap таким образом, чтобы его внутренний глобальный кэш массивов синхронизировался с SimpleArrayMap.class , а не с ArrayMap.class . Это гарантирует, что если вы используете только SimpleArrayMap , ArrayMap можно будет удалить с помощью инструментов сокращения кода. ( aosp/934557 )

Версия 1.1.0-rc01

7 мая 2019 г.

Выпущены androidx.collection:collection:1.1.0-rc01 и androidx.collection:collection-ktx:1.1.0-rc01 . Список изменений, включенных в эту версию, можно найти здесь .

Новые функции

  • Используйте более эффективную реализацию функций contains и isNotEmpty в артефакте 'collection-ktx'. ( aosp/866529 )

Версия 1.1.0-beta01

3 апреля 2019 г.

Выпущены версии androidx.collection:collection:1.1.0-beta01 и androidx.collection:collection-ktx:1.1.0-beta01 . Список изменений, включенных в эту версию, можно найти здесь .

изменения API

  • Метод, упомянутый в примечаниях к выпуску alpha03 как изменивший значение @RestrictTo был удален. Он не использовался ни одной библиотекой AndroidX (ни сейчас, ни раньше) и не предоставлял никакой функциональности, отсутствующей в публичном API.

Исправлены ошибки

  • Измените SimpleArrayMap таким образом, чтобы его внутренний глобальный кэш массивов синхронизировался с SimpleArrayMap.class , а не с ArrayMap.class . Это гарантирует, что если вы используете только SimpleArrayMap , ArrayMap можно будет удалить с помощью инструментов сокращения кода. ( aosp/934557 )

Версия 1.1.0-alpha03

13 марта 2019 г.

Выпущены androidx.collection:collection:1.0.0-alpha03 и androidx.collection:collection-ktx:1.0.0-alpha03 . Полный список изменений, включенных в эту версию, можно найти здесь .

изменения API

  • Метод в ArraySet , ранее помеченный как @RestrictTo(LIBRARY_GROUP) был изменен на @RestrictTo(LIBRARY_GROUP_PREFIX) . Это сделано для поддержки исторического использования другими библиотеками AndroidX, которые теперь находятся в разных группах Maven. Этот метод будет либо сделан общедоступным, либо удален в версии 1.1.0-alpha04, поскольку другие библиотеки AndroidX не должны получать специальные API, недоступные другим разработчикам.

Версия 1.1.0-alpha02

30 января 2019 г.

Выпущены androidx.collection:collection 1.1.0-alpha02 и androidx.collection:collection-ktx 1.1.0-alpha02 .

изменения API

  • Устаревшие методы delete . Метод remove предлагает тот же API и функциональность и соответствует API, используемому неспециализированными картами. ( aosp/866053 )

Версия 1.1.0-alpha01

3 декабря 2018 г.

изменения API

  • Добавить putIfAbsent в LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772608 )
  • Добавить getOrDefault в SimpleArrayMap ( aosp/772607 )
  • Добавлена remove с двумя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat . Соответствующие расширения KTX для этой функциональности объявлены устаревшими. ( aosp/772482 )
  • Добавлена replace с двумя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772483 )
  • Добавлена replace с тремя аргументами для классов LongSparseArray , SimpleArrayMap и SparseArrayCompat ( aosp/772484 )