Kolekcja

  
Zmniejsz wpływ na pamięć w przypadku małych kolekcji (zarówno nowych, jak i istniejących).
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja Alfa
11 lutego 2026 r. 1.5.0 1.6.0-rc01 - -

Deklarowanie zależności

Aby dodać zależność od sekcji Zbieranie danych, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Groovy

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

Kotlin

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.6

Wersja 1.6.0-rc01

11 lutego 2026 r.

Publikacja androidx.collection:collection-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zmiany.

Wersja 1.6.0-beta01

14 stycznia 2026 r.

Publikacja androidx.collection:collection-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano rozszerzenia .toScatterSet().toScatterMap(). Stanowią one alternatywę tylko do odczytu dla funkcji konwersji z możliwością zmiany i zwracają singletony bez przydziału, gdy kolekcja źródłowa jest pusta. (I1769a, b/459867876)
  • Zastąp pseudokonstruktory MutableScatterMap(source)MutableScatterSet(source) standardowymi funkcjami rozszerzającymi .toMutableScatterMap().toMutableScatterSet(). Jest to zgodne z konwencjami języka Kotlin dotyczącymi konwersji kolekcji. (Ic9ca6, b/459867876)
  • Dodaj funkcje fabryczne MutableScatterMap(Map)MutableScatterSet(Set). Użyj tych funkcji, aby łatwo utworzyć kolekcję rozproszoną wstępnie wypełnioną zawartością istniejącej kolekcji. (I51d70)

Poprawki błędów

  • Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Programiści Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict (jest to domyślne ustawienie od wersji 2.1.0 kompilatora Kotlin) (I05181, b/326456246)

Wersja 1.6.0-alpha01

27 sierpnia 2025 roku

Publikacja androidx.collection:collection-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają do użycia KGP w wersji 2.0.0 lub nowszej (Idb6b5).

Poprawki błędów

  • Wcześniej funkcja SparseArrayCompat zwracała wartość null dla parametru valueAt i wartość keyAt, gdy przekazywano indeks, który mieścił się w przydzielonym zakresie, ale poza wstawionym zakresem 0..size -1. Zgodnie z dokumentacją takie zachowanie nigdy nie było oczekiwane i wykraczało poza prawidłowy zakres danych wejściowych. Ta zmiana naprawia to zachowanie, tak aby w przypadku przekazania nieprawidłowego indeksu zgłaszać błąd IndexOutOfBounds. (I68453)

Wkład zewnętrzny

Dziękujemy Jake’owi Whartonowi za te publikacje:

  • Dostosuj działanie joinToString do kolekcji platformy, dodając separator przed wskaźnikiem obcięcia i przyrostek po nim podczas ograniczania uwzględnionych elementów. (I1b7e8)
  • ScatterSet.hashCode nie chroni już przed rekurencją (czyli dodawaniem zbioru do samego siebie). Dzięki temu będzie się zachowywać podobnie jak ScatterMap, HashSet i zbiory oparte na rozproszeniu pierwotnym (np. LongSet). Pamiętaj, że metoda equals była już podatna na rekurencję, a metoda toString chroni przed nią – oba te zachowania są zgodne z innymi kolekcjami. (I9c84a)
  • Funkcja ScatterSet.retainAll jest teraz wbudowana, aby uniknąć tworzenia instancji lambda. (Ifa4b7)
  • ScatterSet.hashCode nie używa już swojej pojemności w obliczeniach skrótu, co zapewnia, że równe treści, ale o różnej pojemności, nadal dają tę samą wartość. (Ic863b)
  • Wyjątek IllegalStateException jest teraz zgłaszany, jeśli wywołasz funkcję remove() przed next() na iteratorze kolekcji keys, values lub entries typu ScatterMap.asMap() lub ScatterSet.asSet(). Dzięki temu jego działanie będzie zgodne z działaniem zwykłej mapy i zestawu. (I71694)

Wersja 1.5

Wersja 1.5.0

12 marca 2025 r.

Publikacja androidx.collection:collection-*:1.5.0 Wersja 1.5.0 zawiera te zmiany.

Wersja 1.5.0-rc01

26 lutego 2025 r.

Publikacja androidx.collection:collection-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zmiany.

Wersja 1.5.0-beta03

29 stycznia 2025 r.

Publikacja androidx.collection:collection-*:1.5.0-beta03 Wersja 1.5.0-beta03 zawiera te zmiany.

Wersja 1.5.0-beta02

15 stycznia 2025 r.

Publikacja androidx.collection:collection-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zmiany.

Wersja 1.5.0-beta01

11 grudnia 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano obsługę watchosDeviceArm64 KMP i wersji docelowej Kotlin 1.9 (Icf15d, b/364652024)

Wersja 1.5.0-alpha06

13 listopada 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha06 Wersja 1.5.0-alpha06 zawiera te zmiany.

Poprawki błędów

  • Naprawiliśmy awarię, która mogła wystąpić w SieveCacheOrderedScatterSet podczas dodawania wielu elementów powodujących powtarzające się kolizje kluczy. (Iaaf3d, b/375607736)
  • Dodaj element docelowy wasm do biblioteki kolekcji. (I66fe3, b/352722444)

Wersja 1.5.0-alpha05

30 października 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha05 Wersja 1.5.0-alpha05 zawiera te zmiany.

Wersja 1.5.0-alpha04

16 października 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha04 Wersja 1.5.0-alpha04 zawiera te zmiany.

Wersja 1.5.0-alpha03

2 października 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha03 Wersja 1.5.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Aktualizacja wersji Kotlina do 1.9 (I1a14c)

Wkład zewnętrzny

  • Jedź dalej na contains do: containsKey. Dzięki, Jake Wharton! (I9362b)
  • Dodaj konstruktory kontenerów dla kolekcji wyspecjalizowanych w skalarach. Dzięki, Jake Wharton! (I13179)

Wersja 1.5.0-alpha02

18 września 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha02 Wersja 1.5.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

Wersja 1.5.0-alpha01

4 września 2024 r.

Publikacja androidx.collection:collection-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • OrderedScatterSet to nowa kolekcja zamówiona bez przydziału (Ic4178)
  • SieveCache to nowy zamiennik LruCache, który nie wymaga przydzielania miejsca i ma lepsze charakterystyki współczynnika trafień. (I50a17)
  • Udostępniliśmy wewnętrzną reprezentację packedValue dla IntIntPairFloatFloatPair. (Ifeb75, b/331853566)
  • Dodawanie dostępu do tablicy treści w kolekcjach list. (I899d5, b/333903173)
  • Dodaliśmy DoubleList, czyli strukturę danych podobną do listy, zoptymalizowaną pod kątem wartości typu Double. (Ia10d1, b/315127635)

Poprawki błędów

  • Biblioteka kolekcji zostanie przeniesiona do Kotlin 1.9 (I0782f)
  • Zoptymalizuj wiele kolekcji, aby zwiększyć ich wydajność. (Ic0566)

Wersja 1.4

Wersja 1.4.5

30 października 2024 r.

Publikacja androidx.collection:collection-*:1.4.5 Wersja 1.4.5 zawiera te zmiany.

Wersja 1.4.4

18 września 2024 r.

Publikacja androidx.collection:collection-*:1.4.4 Wersja 1.4.4 zawiera te zmiany.

Poprawki błędów

  • Obejście ArrayIndexOutOfBounds podczas sortowania pustej kolekcji. (I65245)

Wersja 1.4.3

7 sierpnia 2024 r.

Publikacja androidx.collection:collection-*:1.4.3 Wersja 1.4.3 zawiera te zmiany.

Poprawki błędów

  • Usunięto błąd, który mógł powodować uszkodzenie danych w przypadku typów ScatterMap, ScatterSet i ich wariantów pierwotnych. (I38a4a, b/352560465)
  • Optymalizacje skuteczności. W szczególności:
    • Zastąp wywołania funkcji check()required() wariantami, które nie wstawiają wyjątków w kodzie. Zmniejsza to rozmiar końcowego pliku binarnego, a co ważniejsze, nieco zmniejsza obciążenie pamięci podręcznej instrukcji.
    • Ulepszone removeDeletedMarkers() w kolekcjach z rodziny „scatter”. Nowa wersja usuwa po 8 znaczników usunięcia naraz i pomija droższe operacje zapisu. (Ic0566)

Wersja 1.4.2

24 lipca 2024 r.

Publikacja androidx.collection:collection-*:1.4.2 Wersja 1.4.2 zawiera te zmiany.

Nowe funkcje

  • Obejmuje dodatkowe platformy Kotlin Multiplatform: watchos, tvos, linuxArm64. (b/352543988)

Wersja 1.4.1

10 lipca 2024 r.

Publikacja androidx.collection:collection-*:1.4.1 Wersja 1.4.1 zawiera te zmiany.

Poprawki błędów

  • Usuwanie usuniętych znaczników z mapy lub zbioru podczas zmiany rozmiaru. (7a996c5, b/345960092)

Wersja 1.4.0

24 stycznia 2024 r.

Publikacja androidx.collection:collection-*:1.4.0 Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.3.0

Dodaliśmy nowe kolekcje o wysokiej wydajności do przechowywania typów prostych bez opakowywania:

  • MutableScatterMap & ScatterMap - Classes with MutableMap & Map-like API
  • MutableScatterSet & ScatterSet - Classes with MutableSet & Set-like API
  • MutableObjectListObjectList – klasy z MutableList i interfejsem API podobnym do listy

Na przykład mapa z kluczem całkowitym i wartością typu odniesienia to IntObjectMap<T>. Mapa z długim kluczem i wartością zmiennoprzecinkową to LongFloatMap. Nie ma wersji o nazwie ObjectObjectMap, ponieważ jest ona objęta wersją ScatterMap/MutableScatterMap.

Wersja 1.4.0-rc01

10 stycznia 2024 r.

androidx.collection:collection-*:1.4.0-rc01 zostaje opublikowany bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Wersja 1.4.0-beta02

29 listopada 2023 r.

Publikacja androidx.collection:collection-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zatwierdzenia.

Nowe funkcje

  • Poprawiona wydajność FloatFloatPair. (If5537)

Poprawki błędów

Wersja 1.4.0-beta01

15 listopada 2023 r.

Publikacja androidx.collection:collection-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawka dotycząca ListIterator, która nieprawidłowo ustawiała wartości w ObjectList, co mogło powodować awarię z powodu IndexOutOfBoundsException. (I3bd8a, b/307049391)

Wersja 1.4.0-alpha02

18 października 2023 r.

Publikacja androidx.collection:collection-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano przeciążenie dla put, które zwraca poprzednią wartość, gdy jest ona zastępowana we wszystkich kolekcjach typów prostych, takich jak FloatFloatMap.
  • Konwertuj metody removeIf w kolekcjach typów prostych, np. MutableFloatFloatMap, na wbudowane. Dzięki temu lambda dla removeIf nie zostanie przydzielona.

Wersja 1.4.0-alpha01

4 października 2023 roku

Publikacja androidx.collection:collection-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

Dodano nowe kolekcje o wysokiej wydajności, które mają niski narzut alokacji i wysoką wydajność:

  • MutableScatterMap & ScatterMap - Classes with MutableMap & Map-like API
  • MutableScatterSet & ScatterSet - Classes with MutableSet & Set-like API
  • MutableObjectListObjectList – klasy z MutableList i interfejsem API podobnym do listy

Dodaliśmy nowe kolekcje o wysokiej wydajności do przechowywania typów prostych bez opakowywania:

  • Mutable[Int|Float|Long]List – klasy z interfejsem API podobnym do MutableList<Int|Float|Long>. Istnieje też wersja [Int|Float|Long]List tylko do odczytu. Na przykład liczby całkowite mogą być przechowywane w obiekcie IntList.
  • Mutable[Int|Float|Long]Set – klasy z interfejsem API podobnym do MutableSet<Int|Float|Long>. Istnieje też wersja [Int|Float|Long]Set tylko do odczytu. Na przykład liczby całkowite można przechowywać w obiekcie IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map – klasy z interfejsem API podobnym do Mutable<Int|Float|Long,T, Int|Float|Long|T>. Istnieje też wersja [Int|Float|Long|Object][Int|Float|Long|Object]Map tylko do odczytu. Na przykład mapa z kluczem całkowitym i wartością typu odniesienia to IntObjectMap<T>. Mapa z długim kluczem i wartością zmiennoprzecinkową to LongFloatMap. Nie ma wersji o nazwie ObjectObjectMap, ponieważ jest ona objęta wersją ScatterMap/MutableScatterMap.

Wersja 1.3.0

Wersja 1.3.0

4 października 2023 roku

Publikacja androidx.collection:collection-*:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.2.0

  • Teraz możesz używać kolekcji w projektach Kotlin Multiplatform. Pamiętaj, że platformy docelowe Kolekcji inne niż Android są nadal w fazie eksperymentalnej, ale postanowiliśmy połączyć wersje, aby ułatwić deweloperom ich wypróbowanie.
  • Cały kod źródłowy został przeniesiony do języka Kotlin. W ramach tej zmiany wiele interfejsów API ma teraz prawidłowe typy wartości null, a kilka elementów prywatnych pakietu stało się internal. Listę dokładnych zmian znajdziesz poniżej w informacjach o wersji 1.3.x.
  • Wraz z migracją do języka Kotlin collection-ktx został scalony z głównym artefaktem kolekcji. Możesz bezpiecznie usunąć wszystkie zależności od collection:collection-ktx na rzecz collection:collection, ponieważ collection-ktx jest teraz pusta.

Wersja 1.3.0-rc01

6 września 2023 r.

androidx.collection:collection-*:1.3.0-rc01 zostaje opublikowany bez zmian. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.

Wersja 1.3.0-beta01

9 sierpnia 2023 r.

Publikacja androidx.collection:collection-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Wersja 1.3.0-alpha04

24 marca 2023 r.

Publikacja androidx.collection:collection-*:1.3.0-alpha04

Poprawki błędów

  • Usunięto ograniczenia zależności z artefaktów Maven, aby obejść problem z kompilacją w przypadku platform Kotlin Native (b/274786186, KT-57531).

Wersja 1.3.0-alpha03

22 marca 2023 r.

Publikacja androidx.collection:collection-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Możesz teraz używać kolekcji w projektach KMM. Pamiętaj, że platformy docelowe Kolekcji inne niż Android są nadal w fazie eksperymentalnej, ale zdecydowaliśmy się połączyć wersje, aby ułatwić deweloperom ich wypróbowanie.

Zmiany w interfejsie API

  • ArraySet implementuje teraz MutableCollections zamiast AbstractMutableCollection, aby umożliwić bardziej wydajną pod względem pamięci implementację toArray (I1ac32).

Poprawki błędów

  • ArraySet.toArray jest teraz dostępny tylko w JVM, ponieważ zawsze był uwzględniany tylko ze względu na zgodność z Java. Użytkownicy języka Kotlin powinni raczej korzystać z funkcji pomocniczych .toTypedArray biblioteki standardowej, które zapewniają dokładnie taką samą funkcjonalność, ale z dodatkowym bezpieczeństwem typów. (I2c59b)

Wersja 1.3.0-alpha02

27 lipca 2022 roku

Publikacja androidx.collection:collection:1.3.0-alpha02androidx.collection:collection-ktx:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • SparseArrayCompat jest teraz dostępny na platformach innych niż JVM z artefaktu wspólnego (Ic9bd0, b/219589118, b/228347315).
  • CircularIntArray jest teraz dostępny na platformach innych niż JVM w ramach wspólnego artefaktu (I3d8ef, b/228344943).
  • LongSparseArray jest teraz dostępny na platformach innych niż JVM w ramach wspólnego artefaktu (I73149, b/228347315).

Wersja 1.3.0-alpha01

29 czerwca 2022 r.

Publikacja androidx.collection:collection:1.3.0-alpha01androidx.collection:collection-ktx:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • collection-ktx rozszerzeń zostało przeniesionych do głównego artefaktu kolekcji, androidx.collection:collection. Dzięki tej zmianie użytkownicy języka Kotlin będą mogli korzystać z wcześniej dostępnych rozszerzeń -ktx bez konieczności dodawania zależności -ktx, przy jednoczesnym zachowaniu zgodności z dotychczasowymi użytkownikami. Utrzymywanie tych rozszerzeń w osobnym artefakcie -ktx nie jest już korzystne, ponieważ główny artefakt został przeniesiony do języka Kotlin. (I6eef2)

Zmiany w interfejsie API

  • ArraySet rozszerza teraz AbstractMutableCollection i nie implementuje już bezpośrednio interfejsu Collection. (If6da0, b/230860589)
  • Przekonwertowano ArraySet na język Kotlin. Ze względu na bardziej rygorystyczne typowanie niektóre wywołania w Kotlinie mogą już nie być kompilowane. (Id68c1, b/230860589)
    • Te wywołania mają argument typu T, a nie T?:
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Te wywołania mają typ zwracany T?, a nie T!:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Z Kotlin nie można już wykonywać tych wywołań:
      • set.toArray() – użyj set.toTypedArray()
      • set.toArray(array) – użyj set.forEachIndexed(array::set)
  • Połącz przeciążony konstruktor dla SparseArrayCompat jako argument opcjonalny dla użytkowników Kotlin. (If8407, b/227474719)
  • Usuń składnię operatora dla SparseArrayCompat.get(key, defaultValue).. Pamiętaj, że nadal zezwala to na składnię operatora dla .get(key), ale lepiej dopasowuje powierzchnię interfejsu API SparseArrayCompat do innych klas w tej bibliotece. (I9a38d)
  • Przenieś rozszerzenia LongSparseArray do głównego artefaktu androidx.collection:collection. Dzięki tej zmianie użytkownicy języka Kotlin będą mogli korzystać z wcześniej dostępnych rozszerzeń -ktx bez konieczności dodawania zależności -ktx, przy jednoczesnym zachowaniu zgodności z dotychczasowymi użytkownikami. Utrzymywanie tych rozszerzeń w osobnym artefakcie -ktx nie jest już korzystne, ponieważ główny artefakt został przeniesiony do języka Kotlin. (I8659a)
  • Przekonwertuj LongSparseArray na Kotlin. Ta zmiana dodaje do typów jawne wartości null, co jest zmianą zgodną binarnie, ale może powodować niezgodności w kodzie źródłowym. W szczególności: * .isEmpty nie jest już dostępny jako właściwość, musi być dostępny jako wywołanie funkcji w języku Kotlin – .isEmpty() (Idfd0f).
  • Przekonwertuj SimpleArrayMap na Kotlin. Ta zmiana wprowadza kilka niezgodnych zmian wynikających z współdziałania Javy i Kotlina oraz możliwości prawidłowego określania wartości null typów w kodzie źródłowym.
    • Interfejsy API pakietu prywatnego .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull().indexOfValue() zostały ustawione jako prywatne. Jest to zmiana technicznie niezgodna binarnie, ale odzwierciedla zamierzoną widoczność tych pól i jest najbliższym rozwiązaniem, jakie możemy osiągnąć w Kotlinie, ponieważ nie zawiera on sposobu na określenie widoczności pakietu prywatnego.
    • Wartość null niektórych typów jest teraz prawidłowo zdefiniowana. Dotyczy to tych metod: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • W przypadku użytkowników języka Kotlin funkcja .isEmpty() jest teraz dostępna tylko jako funkcja, a nie jako dostęp do właściwości. (I271b7, b/182813986)
  • Przekonwertuj CircularArray na Kotlin. Najważniejsze zmiany:

    • Poprawia wartość nullability typów ogólnych na wartość inną niż null, co wcześniej było niemożliwe do zadeklarowania, ale było wymuszane we wszystkich publicznych interfejsach API.
    • Ze względu na interoperacyjność języka Kotlin z językiem Java można było wcześniej uzyskiwać dostęp do niektórych metod jako właściwości lub funkcji. Aby jednak zmniejszyć duplikowanie przy zachowaniu zgodności binarnej, konieczne było usunięcie tych elementów, co jest zmianą niezgodną ze źródłem. Dotknięte wywołania to: .isEmpty, .getLast().getFirst(). (Ifffac)
  • Przekonwertuj CircularIntArray na Kotlin. Ze względu na interoperacyjność języka Kotlin z językiem Java wcześniej można było uzyskać dostęp do niektórych metod jako właściwości lub funkcji. Aby jednak zmniejszyć duplikowanie przy zachowaniu zgodności binarnej, konieczne było usunięcie tych elementów, co jest zmianą niezgodną z kodem źródłowym. Połączenia, których dotyczy problem: .isEmpty, .getLast().getFirst(). (Ie36ce)

  • Konwertowanie LruCache na język Kotlin (Ia2f19)

  • Przekonwertuj SparseArrayCompat na Kotlin. (If6fe8)

    Do funkcji SparseArrayCompat.valueAt() dodano niewielką zmianę w sposobie działania, która sprawia, że nie zwraca ona już nieprawidłowo wartości null w przypadku niezainicjowanych wywołań poza zakresem size(), ale w ramach podanej początkowej pojemności.

    Wprowadzamy też prawidłową wartość null dla niektórych typów, której wcześniej brakowało.

    • .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)

Wersja 1.2.0

Wersja 1.2.0

1 grudnia 2021 r.

Publikacja androidx.collection:collection:1.2.0androidx.collection:collection-ktx:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

  • Dodaj konstruktor tablicy do ArraySet. (Id7f19)
  • Zapewnij zgodność z interfejsem entrySet() API, wdrażając entrySet().toArray(), remove(), removeAll()retainAll() oraz usuwając implementację entrySet().addAll() (I5d505).

Wersja 1.2.0-rc01

17 listopada 2021 r.

Publikacja androidx.collection:collection:1.2.0-rc01androidx.collection:collection-ktx:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Brak zmian w porównaniu z poprzednią wersją beta.

Wersja 1.2.0-beta01

13 października 2021 r.

Publikacja androidx.collection:collection:1.2.0-beta01androidx.collection:collection-ktx:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Poprawki błędów

  • Zapewnij zgodność z interfejsem entrySet() API, wdrażając entrySet().toArray(), remove(), removeAll()retainAll() oraz usuwając implementację entrySet().addAll() (I5d505).

Wersja 1.2.0-alpha01

16 grudnia 2020 roku

Publikacja androidx.collection:collection:1.2.0-alpha01androidx.collection:collection-ktx:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaj konstruktor tablicy do ArraySet. (Id7f19)

Wersja 1.1.0

Wersja 1.1.0

5 czerwca 2019 r.

Publikacja androidx.collection:collection:1.1.0androidx.collection:collection-ktx:1.1.0 Zatwierdzenia zawarte w wersji 1.1.0 znajdziesz tutaj.

Poniżej znajdziesz podsumowanie zmian wprowadzonych w wersji 1.1.0 w porównaniu z wersją 1.0.0:

Nowe funkcje

  • Używaj bardziej wydajnej implementacji funkcji containsisNotEmpty w artefakcie „collection-ktx”. (aosp/866529)

Zmiany w interfejsie API

  • Dodaj putIfAbsent do LongSparseArray, SimpleArrayMap i SparseArrayCompat (aosp/772608)
  • Dodaj getOrDefault do SimpleArrayMap (aosp/772607)
  • Dodaj funkcję dwuargumentową remove do funkcji LongSparseArray, SimpleArrayMap i SparseArrayCompat. Wycofać odpowiednie rozszerzenia KTX dla tej funkcji. (aosp/772482)
  • Dodaj dwuargumentową funkcję replace do LongSparseArray, SimpleArrayMapSparseArrayCompat (aosp/772483)
  • Dodaj 3-argumentową funkcję replace do LongSparseArray, SimpleArrayMapSparseArrayCompat (aosp/772484)
  • Wycofaj zbędne metody delete. Metoda remove oferuje ten sam interfejs API i funkcje oraz jest zgodna z interfejsem API używanym przez niespecjalistyczne Mapy. (aosp/866053)

Poprawki błędów

  • Zmień SimpleArrayMap, aby zsynchronizować wewnętrzną globalną pamięć podręczną tablic na SimpleArrayMap.class zamiast na ArrayMap.class. Dzięki temu, jeśli używasz tylko SimpleArrayMap, narzędzia do zmniejszania kodu mogą usunąć ArrayMap. (aosp/934557)

Wersja 1.1.0-rc01

7 maja 2019 r.

Publikacja androidx.collection:collection:1.1.0-rc01androidx.collection:collection-ktx:1.1.0-rc01 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Nowe funkcje

  • Używaj bardziej wydajnej implementacji funkcji containsisNotEmpty w artefakcie „collection-ktx”. (aosp/866529)

Wersja 1.1.0-beta01

3 kwietnia 2019 r.

Publikacja androidx.collection:collection:1.1.0-beta01androidx.collection:collection-ktx:1.1.0-beta01 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Zmiany w interfejsie API

  • Metoda, o której wspomnieliśmy w informacjach o wersji alpha03 jako tej, której wartość @RestrictTo została zmieniona, została usunięta. Nie była używana przez żadną bibliotekę AndroidX (obecnie ani w przeszłości) i nie oferowała żadnych funkcji, których nie było w publicznym interfejsie API.

Poprawki błędów

  • Zmień SimpleArrayMap, aby zsynchronizować wewnętrzną globalną pamięć podręczną tablic na SimpleArrayMap.class zamiast na ArrayMap.class. Dzięki temu, jeśli używasz tylko SimpleArrayMap, narzędzia do zmniejszania kodu mogą usunąć ArrayMap. (aosp/934557)

Wersja 1.1.0-alpha03

13 marca 2019 r.

androidx.collection:collection:1.0.0-alpha03androidx.collection:collection-ktx:1.0.0-alpha03 zostały opublikowane. Pełną listę zmian w tej wersji znajdziesz tutaj.

Zmiany w interfejsie API

  • Metoda w ArraySet, która wcześniej była oznaczona jako @RestrictTo(LIBRARY_GROUP), została zmieniona na @RestrictTo(LIBRARY_GROUP_PREFIX). Ma to na celu obsługę starszych wersji innych bibliotek AndroidX, które znajdują się teraz w innych identyfikatorach grup Maven. Ta metoda zostanie upubliczniona lub usunięta w wersji 1.1.0-alpha04, ponieważ inne biblioteki AndroidX nie powinny mieć specjalnych interfejsów API, które nie są dostępne dla innych programistów.

Wersja 1.1.0-alpha02

30 stycznia 2019 r.

androidx.collection:collection 1.1.0-alpha02androidx.collection:collection-ktx 1.1.0-alpha02 zostały opublikowane.

Zmiany w interfejsie API

  • Wycofaj zbędne metody delete. Metody remove oferują ten sam interfejs API i funkcje oraz są zgodne z interfejsem API używanym przez niespecjalistyczne Mapy. (aosp/866053)

Wersja 1.1.0-alpha01

3 grudnia 2018 r.

Zmiany w interfejsie API

  • Dodaj putIfAbsent do LongSparseArray, SimpleArrayMap i SparseArrayCompat (aosp/772608)
  • Dodaj getOrDefault do SimpleArrayMap (aosp/772607)
  • Dodaj funkcję dwuargumentową remove do funkcji LongSparseArray, SimpleArrayMap i SparseArrayCompat. Wycofać odpowiednie rozszerzenia KTX dla tej funkcji. (aosp/772482)
  • Dodaj dwuargumentową funkcję replace do LongSparseArray, SimpleArrayMapSparseArrayCompat (aosp/772483)
  • Dodaj 3-argumentową funkcję replace do LongSparseArray, SimpleArrayMapSparseArrayCompat (aosp/772484)