Коллекция

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

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

Чтобы добавить зависимость от 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-альфа01

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() . Это приводит его поведение в соответствие с обычным поведением отображения и набора. ( 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 target и kotlin 1.9 ( Icf15d , b/364652024 )

Версия 1.5.0-альфа06

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-альфа05

30 октября 2024 г.

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

Версия 1.5.0-альфа04

16 октября 2024 г.

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

Версия 1.5.0-альфа03

2 октября 2024 г.

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

Изменения API

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

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

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

Версия 1.5.0-альфа02

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

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

Изменения API

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

Версия 1.5.0-альфа01

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() вариантами, не выдающими встроенные исключения. Это уменьшает размер конечного двоичного файла и, что ещё важнее, немного снижает нагрузку на i-кэш.
    • Улучшен метод removeDeletedMarkers() в семействе коллекций «scatter». Новая версия удаляет удалённые маркеры по 8 за раз и пропускает более затратные операции записи в процессе. ( Ic0566 )

Версия 1.4.2

24 июля 2024 г.

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

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

  • Включает дополнительные цели Kotlin Multiplatform: 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 — классы с API MutableMap и Map-like
  • MutableScatterSet и ScatterSet — классы с API, подобным MutableSet и Set
  • MutableObjectList и ObjectList — классы с API MutableList и List-like

Например, карта с целочисленным ключом и ссылочным значением — это IntObjectMap<T> . Карта с длинным ключом и значением с плавающей точкой — это 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-альфа02

18 октября 2023 г.

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

Изменения API

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

Версия 1.4.0-альфа01

4 октября 2023 г.

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

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

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

  • MutableScatterMap и ScatterMap — классы с API MutableMap и Map-like
  • MutableScatterSet и ScatterSet — классы с API, подобным MutableSet и Set
  • MutableObjectList и ObjectList — классы с API MutableList и List-like

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

  • 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> . Карта с длинным ключом и значением с плавающей точкой — это LongFloatMap . Версии с именем ObjectObjectMap нет, поскольку она входит в классы ScatterMap/MutableScatterMap .

Версия 1.3.0

Версия 1.3.0

4 октября 2023 г.

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

Важные изменения с версии 1.2.0

  • Теперь вы можете использовать коллекции в многоплатформенных проектах Kotlin. Обратите внимание, что коллекции для не-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-альфа04

24 марта 2023 г.

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

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

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

Версия 1.3.0-альфа03

22 марта 2023 г.

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

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

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

Изменения API

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

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

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

Версия 1.3.0-альфа02

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-альфа01

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, поскольку он не включает способ указать видимость, доступную только в пакете.
    • Недействительность некоторых типов теперь определена правильно, затронуты следующие методы: .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 )
  • Сделайте entrySet() совместимым с API, реализовав 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 содержит эти коммиты.

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

  • Сделайте entrySet() совместимым с API, реализовав entrySet().toArray() , remove() , removeAll() и retainAll() , а также удалив реализацию entrySet().addAll() ( I5d505 )

Версия 1.2.0-альфа01

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-альфа03

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-альфа02

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-альфа01

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 )