0

Introdução às Collections no Kotlin: List

Francisco Rasia
Francisco Rasia

A linguagem Kotlin oferece recursos fantásticos para lidar com coleções, sejam elas listas, conjuntos ou mapas. Nessa nova série de artigos e vídeo nós vamos explorar os principais conceitos e métodos das Collections.

Essas publicações são de nível introdutório destinadas aos colegas que estão iniciando na jornada de aprendizado do Kotlin e da lógica de programação. Os requisitos são apenas um conhecimento mínimo da sintaxe do Kotlin e acesso ao Kotlin Playground .



🤖Coleções

Uma coleção nada mais é do que um grupo contendo zero ou mais objetos do mesmo tipo. É um conceito comum à maioria das linguagens de programação e remete aos fundamentos da ciência de computação. Como nós vamos ver, o Kotlin oferece alguns recursos que facilitam muito a nossa vida ao manipular e percorrer coleções.

As coleções mais relevantes par ao Kotlin são List, Set e Map. As duas primeiras herdam da classe Collection<T>, que herda de Iterable<T>, enquanto o Map é uma classe à parte (ainda assim é considerado uma coleção no Kotlin...).


Collection interfaces hierarchy


Mutabilidade

Cada uma dessas coleções possui duas interfaces:

  • uma interface somente leitura (read-only) para acessar os elementos da coleção
  • uma interface mutável (mutable) que oferece mais três operações de leitura: adicionar, remover e atualizar itens.

A opção por uma ou por outra interface depende da finalidade e da aplicação. Há momentos em que vamos querer ter uma lista mutável (quando estamos adicionando elementos a um repositório, por exemplo), e há momentos que vamos precisar ter uma lista imutável (ao passar dados do repositório para uma visualização) de modo a evitar modificações indesejadas e crashes da aplicação.


List

List é uma coleção ordenada que oferece acesso aos itens pelos seus índices. Uma lista pode conter elementos nulos e os elementos podem se repetir dentro de uma lista (inclusive os nulos). Uma lista mantém os objetos segundo a ordem de inserção.

A implementação padrão no Kotlin é um ArrayList, um array de tamanho variável que pode ter elementos adicionados, removidos ou modificados. Dessa maneira, definir se a lista é ou não mutável depende somente da interface escolhida: List<T> vai implementar uma lista imutável enquanto MutableList<T> vai implementar uma lista mutável.

Para que duas listas sejam consideradas iguais elas devem (1) conter os mesmos objetos (ou referências) e (2) esses objetos devem estar na mesma sequência.

Alguns métodos e propriedades importantes da List<T> são:

  • acesso a qualquer elemento da lista por meio do índice: minhaLista[i] para acessar o elemento na posição i;
  • size: tamanho da List (a quantidade de elementos);
  • indices: um IntRange com todos os índices válidos da lista (indo de 0 até size - 1);
  • forEach { }: essa função percorre todos os itens da lista executando a ação indicada dentro do lambda;
  • add(), remove(): adicionar ou remover itens numa lista mutável;
  • first(), last(): retorna o primeiro ou o último elemento da lista;
  • shuffle(): embaralha a lista
  • sortBy { }, sortByDescending { }: ordenam a lista por um critério passado dentro do lambda.

É claro que há muito mais métodos e recursos, então vale a pena consultar a documentação.


📃Para saber mais

Collections overview: https://kotlinlang.org/docs/collections-overview.html

PlayList Collections no Youtube: https://youtube.com/playlist?list=PL6MlDBy8PhPh9pjpuJuUcm9LFoSSvDlNS


📸

Photo by Jon Tyson on Unsplash



0
0

Comentários (1)

0
Roberto Silva

Roberto Silva

04/09/2021 10:36

Ótimo artigo!

Arquiteto, urbanista, desenvolvedor Kotlin, Java & Android e criador em chefe na chicorialabs.com.br

Brasil