"Oi, amigo. Hoje gostaria de falar sobre coleções. Em Java, uma coleção/container significa uma classe cujo objetivo principal é armazenar uma coleção de outros elementos. Você já conhece uma dessas classes: ArrayList."
"Em Java, as coleções são divididas em três grupos principais: Set, List, Map."
"Qual a diferença entre eles?"
"Deixe-me começar com Set. Imagine muitos sapatos jogados em uma pilha. Este é um Set. Você pode adicionar um elemento a um Set, procurá-lo ou excluí-lo. O importante a observar é que os elementos do conjunto não tem uma ordem específica atribuída."
"Isso não é muito para continuar ..."
"Agora imagine a mesma pilha de sapatos organizada ao longo da parede. Agora há ordem. Cada elemento tem seu próprio número. Você pode simplesmente pegar o par nº 4 com base em seu número (índice). Esta é uma lista. Você pode adicionar um elemento para o início ou meio de uma lista, ou remover um elemento - simplesmente usando seu índice."
"Entendo. Que tal um mapa?"
"Imagine os mesmos sapatos, mas agora cada par tem uma nota com um nome: 'Nick', 'Vic' ou 'Anna'. Este é um mapa (também chamado de dicionário). Cada elemento tem seu próprio nome exclusivo que é usado para endereçá-lo. Esse nome exclusivo para cada elemento é geralmente chamado de 'chave'. Assim, um mapa é um conjunto de pares chave-valor. A chave não precisa ser uma string: pode ser de qualquer tipo. A Map cujas chaves são Integer é na verdade uma List (com algumas diferenças)."
"Eu mais ou menos entendo, mas gostaria de ver mais exemplos."
"Rishi lhe dará exemplos, mas gostaria de acrescentar algumas palavras."
"Imediatamente após a criação, as coleções e contêineres não armazenam nada, mas você pode adicionar elementos a eles um por um. E se o fizer, seu tamanho mudará dinamicamente."
"Isso é interessante. Como sei quantos elementos uma coleção contém?"
"Você tem o método size() para isso. As coleções têm tudo o que você pode precisar. Acredito que depois de mais algumas lições você verá por si mesmo como as coleções são convenientes."
"Eu espero que sim, Ellie."
GO TO FULL VERSION