Informática, perguntado por leiddymary, 5 meses atrás

FÓRUM DA DISCIPLINA - PRAZO FINAL: 12/04/2022

Caro (a) aluno (a) até o momento, quando era necessário armazenar objetos, era utilizados os arrays. Embora seja a primeira forma de armazenamento apresentada na programação, estes possuem algumas limitações, sendo entre elas o tamanho fixo, dificuldade de pesquisa e controle de inserções de itens.

Tamanho Fixo

Se um vetor de inteiros com dez posições for instanciado e em determinado momento, for necessário uma 11ª posição, um pequeno trabalho terá que ser realizado. Terá que instanciar um novo vetor, com onze posições e depois copiar os valores do vetor antigo para o novo.

Essa situação será fácil implementar, mas se depois forem doze posições? E depois forem treze? Quatorze? Vinte posições? Você notará que esta abordagem de criar um novo e repassar os itens se tornará repetitiva. Neste caso, será melhor utilizar uma estrutura que possibilite um maior dinamismo em uma manipulação.


Dificuldade de Pesquisa

Se for necessário encontrar um elemento dentro de um vetor não temos o que fazer. Será necessário percorrê-lo para verificar se o item desejado encontra-se dentro dele.

O vetor, no pior dos casos, será percorrido totalmente para se chegar à conclusão de que o item não está dentro dele. Embora mais uma vez possa parecer óbvio e inevitável esta situação, ela poderá ser melhorada.



Controle de Inserção

Caso for necessário averiguar se um novo item existente dentro do vetor para poder adicioná-lo, novamente se tornam presentes os problemas de tamanho e dificuldade de pesquisa. E se não existir e o vetor estiver cheio, será preciso criar um novo e fazer a cópia. Para poder chegar a essa conclusão, talvez ele tenha que percorrido completamente.



Como evitar essas situações adversas? Coleções

Provavelmente, estruturas como listas e conjuntos já tenham sido apresentadas. Além destas, uma coleção especial conhecida como Mapas, que utiliza o princípio de chave/valor, também será de grande utilidade. Caso ainda não tenham sido apresentadas, será bom conhecê-las.

É pensando em tornar mais simples (alto nível), o uso destas estruturas de linguagens orientadas a objetos, possuem classes especialmente criadas para facilitar a manipulação destas coleções. Tanto Java quanto C# possuem coleções. Serão apresentadas as mais utilizadas de ambas. Existem ainda outras coleções e caso se deseje completar os estudos, você poderá recorrer às documentações de tais linguagens.



Listas

Diferentes dos vetores, uma lista não possui tamanho fixo. Ela poderá crescer de acordo com a necessidade. O processo de inclusão é simplificado devido a não ser preciso fazer cópia de uma lista para a outra. ArrayList em Java e List em C# serão as classes responsáveis por representar essa estrutura.



Mapas

São essas coleções que usam o princípio de chave/valor. Neste caso, não somente o item será armazenado, mas também um identificador para ele. Vale ressaltar que este identificador será único dentro do mapa.

Em Java, as coleções HashMap e HashTable são as utilizadas, principalmente a primeira. Na linguagem C#, existe a classe HashTable e Dictionary. A diferença entre elas é que a segunda, Dictionary, é parametrizada. Já a primeira, HashTable, não é. Porém, a forma de usar a classe HashTable em C# será a mesma de Dictionary.


Conjuntos

As coleções que representam este conceito são versões simplificadas do conjunto da matemática. Basicamente, a principal característica utilizada dos conjuntos da matemática, por estas coleções, será não possibilitar inclusão de elementos repetidos. Tanto em Java como em C#, a classe HashSet será a implementação deste conceito,



Qual das duas coleções é a melhor? Qual deverá ser usada?

Após esta rápida introdução sobre coleções, da Programação Orientada a Objetos, essas duas perguntas poderão surgir. Dessa forma, fica a dúvida para quem está começando agora o estudo de programação. Qual estrutura de programação utilizar? Faça uma análise crítica sobre estas três estruturas Listas, Mapas e Conjuntos e apresente um parecer sobre estas questões apresentadas.

Obs.: Buscar na internet mais informações sobre estas três estruturas Listas, Mapas e Conjuntos.

Soluções para a tarefa

Respondido por humbertoalvescoutinh
0

Uma lista é uma coleção de elementos arrumados numa ordem linear, isto é, onde cada elemento tem um antecessor (exceto o primeiro) e um sucessor (exceto o último).

Um conjunto é uma coleção que não possui elementos duplicados

Um mapa armazena pares (chave, valor) chamados itens!

Perguntas interessantes