Manipulação de mapas em Dart
Na linguagem de programação Dart, que é a mais indicada para fazer aplicativos móveis utilizando o Flutter, há a possibilidade de trabalhar com coleções, sejam elas mapas ou listas. Ambas auxiliam quando há a necessidade de manipulação de JSON para APIs e, manipular os mesmos para operações que possam ser realizadas.
Em linguagens de programação como Java ou C#, as listas equivalem aos vetores (arrays) e, os mapas equivalem às matrizes, que são vetores bidimensionais, com linha e coluna. Dessa forma, no presente artigo, serão abordados alguns métodos utilizados para manipulação de mapas. Para listas, há um artigo sobre como manipular as mesmas, que pode ser acessado pelo seguinte link.
Dessa maneira, como um mapa é similar a uma matriz, ou seja, é bidimensional, haverá duas categorias de dados que devem ser declarados ao declarar um mapa. As categorias da linguagem Dart são:
· Int — para valores inteiros;
· Boolean — para valores binários ou verdadeiro e falso;
· String — para letras e palavras em geral;
· Double, float — para valores decimais;
· Dynamic — tipo que aceita qualquer categoria de dado anterior.
Para uma declaração de um mapa, a sintaxe deve ser a seguinte:
Map <tipo1, tipo2> nome_mapa = Map ().
Nele, sempre haverá um par chave-valor com os dados que serão utilizados, como, por exemplo, um id e o nome de uma pessoa.
Assim, no exemplo abaixo, foi declarado um mapa com nome “usuario” e, atribuído alguns valores ao mesmo. No console, irão aparecer os nomes declarados para cada posição do mapa, bem como a sua chave, que no caso, são os valores numéricos de cada posição que cada nome representa no mapa.

No console:

Dessa forma, no console, há a opção de aparecer somente as chaves (keys) ou somente os valores do mapa (values). No exemplo abaixo, deve ser utilizado o nome do mapa (no caso, usuario) com um ponto (.) e, em seguida, o que deverá ser utilizado:


ADIÇÃO DE ITENS AO MAPA
Para a adição de um item ao mapa, deve se utilizar a função putIfAbsent, ou seja, irá inserir somente se a chave ou o valor não existirem no mapa. Assim, para a inserção, será necessário informar qual o valor da chave será inserido e, qual o valor que essa chave irá conter (no exemplo abaixo, foi inserida a key 4 com o value Rodrigo).

ATUALIZAÇÃO/MUDAR UM ITEM
Dessa forma, caso seja necessário trocar um valor do mapa, é necessário utilizar a função update, assim como em bancos de dados, sendo preciso informar qual chave que deverá ser atualizada, bem como o valor novo que a mesma irá ter. De acordo com o exemplo abaixo, o nome Gabriel foi trocado para Fernando:

VERIFICAÇÃO DE UM VALOR NO MAPA
Para a verificação se um value realmente existe no mapa declarado, a função containsValue é utilizada para esse fim, e retornará true, caso exista o valor no mapa ou retornará false, caso o valor não exista, conforme o exemplo abaixo:

Joaquim não existe no mapa, por isso, seu retorno é igual a falso.
VERIFICAÇÃO DE UMA CHAVE NO MAPA
Da mesma forma, para a verificação se uma chave realmente existe no mapa declarado, a função containsKey é utilizada para esse fim, e retornará true, caso exista a chave no mapa ou retornará false, caso a mesma não exista, conforme o exemplo abaixo:

A chave 4 não existe no mapa, por isso, seu retorno é igual a falso.
VERIFICAÇÃO SE O MAPA ESTÁ VAZIO OU NÃO
Para essa verificação ser feita, é necessário utilizar as funções isEmpty ou isNotEmpty. Assim, caso o mapa estiver vazio, retornará verdadeiro (true) e se o mesmo estiver com itens, retornará falso. Como o exemplo que está sendo utilizado possui dados inseridos nele, o mapa não está vazio, de acordo com o exemplo abaixo:

REMOÇÃO DE UM ITEM:
Para remoção de um item no mapa, similar às listas, é necessário utilizar o método remove, para tal ação e, indicar o valor que será removido. Para isso, no exemplo, a posição 2, que representa o João, será removida:


VERIFICANDO QUANTOS ITENS O MAPA POSSUI
No Dart, para essa checagem, assim como várias outras linguagens de programação, basta utilizar a função length, com o nome do mapa, para verificar a quantidade de itens que o mesmo possui:

LIMPANDO OS ITENS DO MAPA
Para limpar todos os itens do mapa, é necessário utilizar a função clear, que limpará todos os itens que o mapa possui, como mostra o exemplo abaixo:

Conforme mostrado no console da Figura 13, não há nenhum item no mapa, após a utilização da função.
Destarte, esses são só alguns dos vários métodos para manipulação de mapas na linguagem Dart. Contudo, os que foram apresentados são os que a maioria dos programadores utilizará em algum momento do desenvolvimento de seu aplicativo, quando estiver utilizando, em paralelo, o framework Flutter, para mexer com o JSON que será retornado das APIs.