Coleções em Dart (Maps, List)


A variável, por definição, só nos permite colocar um valor dentro dela, porém há situações em que queremos um tipo de variável mais flexível que contenha mais valores. A estas variáveis mais flexíveis iremos chamar de coleções que é um tipo de estrutura de dados onde podemos

.

LISTAS

É um conjunto de valores organizados e com uma ordem, por exemplo [7, 1, 2, 3], para cada número há um índice, ou seja, o número 7 equivale ao índice 0, o número 1 ao índice 1 e assim por diante. O índice é como se fosse uma fila, então o primeiro ítem sempre equivalerá ao indice 0 e assim por diante. 

Os índices podem conter número ou nomes.

Em outras linguagens a lista ou list é chamada de array, já em Dart, chama-se list ou listas.

MAPAS

Séra mais flexível do que as listas, é uma espécie de dicionário. Mas como assim um dicionário? Bem, em um dicionário de um lado há o nome e de outro o significado. Mapas são tratados da mesma forma (um par de chave-valor, key-value). ex. {"id":"0", "nome":"diego"} a chave seria o "id" e o valor "0".

COMO CRIAR COLEÇÕES EM DART

Criando Listas

Para criar uma lista iremos criar uma variável + nome e após a lista de dados que queremos que ela contenha:

main (ListString arguments) {
  var lista = [11, 22, 33, "Oi"];
  print(lista);
}

Para podermos acessar algum dado específico da lista nos colocamos o index dentro delta desta forma print(lista[0]); que irá nos retornar o primeiro ítem da lista que é "11".

Toda lista tem um tamanho que seria a quantidade de ítens presentes na lista, na lista que criamos tem 4 ítens, em dart chamamos de lenght. Para retornar o tamanho da lista nós fazemos da sequinte forma:

main (ListString arguments) {
  var lista = [11, 22, 33, "Oi"];
  print(lista.length);
}

Podemos também retirar ítem por item utilizando o for:

main (ListString arguments) {

  var lista = [11, 22, 33, 44];

for (var i =0; i lista.length; i++){
print ("Índice $i contém ${lista[i]}");
}
}

O resultado do print acima será: 

Índice 0 contém 11
Índice 1 contém 22
Índice 2 contém 33
Índice 3 contém 44

Para saber qual será o último ítem de nossa lista podemos utilizar o length - 1, pois a contagem do índice da lista começa por 0, vejamos:

main (ListString arguments) {

  var lista = [11, 22, 33, 44];

print(lista[lista.length - 1]);
}

O resultado será 44.

Há também outra forma de criar uma lista var lista = List(); e se eu quiser colocar o tipo de lista basta colocar o tipo: var lista = ListString(); 

Para adicionar os elementos nesta lista nos devemos adicionar o método add:

main (ListString arguments) {
  var lista = new ListString();
lista.add("Oi");
lista.add("Tchau");
}

OBS. Em Dart na versão 2.0 não precisa mais colocar o new, na verdade será opcional.

Criando Maps

Ao contrário das listas que começam com [] os mapas começam com {}. Para definir um mapa devemos:

main (ListString arguments) {
  var jogadores = {
"primeiro":"Ronaldo",
"segundo":"Diego",
"terceiro":"Paulo",
};

  print(jogadores["primeiro"]);
}

Caso queiramos interar utilizando o for para retirar os objetos do mapa, fazemos utilizando o forEach:

main (ListString arguments) {
  var jogadores = {
"primeiro":"Ronaldo",
"segundo":"Diego",
"terceiro":"Paulo",
};
  jogadores.forEach(
(c, v) = print(c)
);
}

O forEach traz em sua fórmula o (String, String) onde o primeiro será a chave key e o segundo o valor value. No caso acima, iremos printar somente as chaves: primeiro, segundo e terceiro. Caso você queira mostrar só as chaves você pode utilizar o termo keys ou values, vejamos:

main (ListString arguments) {
  var jogadores = {
"primeiro":"Ronaldo",
"segundo":"Diego",
"terceiro":"Paulo",
};
  var chaves = jogadores.keys;
print(chaves);
}

Irá retornar: (primeiro, segundo, terceiro). Da mesma forma ocorrerá se colocarmos values.

16728 Visualizações

Comentários


take takeshi 18 dias atrás

caramba encontrei esse material hoje ja vou comeca estudar minhas dificuldade sao fazer as funcoes e metodos no flutter no dart pad beleza eu ate entendo mas chega no flutter fica meio complicado existe algum curso que ensina o dart no flutter com android studio ou vscode?

 
  • Curtir
  • Ame
  • HaHa
  • Uau
  • Triste
  • Bravo
 
nilsoneduglobo 1 mês atrás

Olá, estou começando agora no Flutter. Existe alguma forma de mostrar os valores armazenados numa lista de forma ordenada. Por exemplo, eu criei uma lista que recebe números randômicos e quero mostrá-los em ordem crescente.

 
  • Curtir
  • Ame
  • HaHa
  • Uau
  • Triste
  • Bravo
 
Reinaldo Braz Pereira 6 meses atrás

Boa noite Diego! Parabéns pela iniciativa, para mim foi muito produtivo.
Agradeço pela sua disponibilidade e desejo muito sucesso para você. Abraço.

 
  • Curtir
  • Ame
  • HaHa
  • Uau
  • Triste
  • Bravo
 
Valdenir Albino 1 ano atrás

Bom dia! Parabéns pelo post, simples e objetivo para iniciantes.

Acredito que ficou apenas uns problemas ao colar o código aqui, que talvez complique quem está iniciando:

1) Substituir os ";" por ":" (dois pontos) na declaração de jogadores.
var jogadores = {
"primeiro":"Ronaldo",
"segundo":"Diego",
"terceiro":"Paulo",
};

2) O ";" deve ser no final do foreach e não na linha do print.
jogadores.forEach(
(c, v) => print(c)
);

3) Ajustar o nome do método length
print(lista[lista.length - 1]);

 
  • Curtir
  • Ame
  • HaHa
  • Uau
  • Triste
  • Bravo