Variedades de informação
Vivemos em um mundo que consome grandes quantidades de informações. As informações são usadas para gerar os boletins meteorológicos que vemos com nosso café da manhã, consumimos informações quando assistimos ou lemos notícias com nosso jantar e as informações são usadas até mesmo para criar os efeitos que vemos em nossos filmes favoritos. Com a variedade de coisas que fazemos com as informações, só faz sentido precisarmos de vários métodos para armazenar e acessar essas informações. Um desses métodos é um mapa.
O que é um mapa?
Um mapa é uma coleção de informações em que cada elemento possui uma composição especial. Em particular, cada elemento consiste em um par chave / valor em que a chave se traduz na posição do elemento no mapa, e o valor é o conteúdo que desejamos rastrear. Por exemplo, considere sua conta bancária. Normalmente, ele tem uma chave exclusiva, o número da conta e um valor composto por várias informações que seu banco deseja rastrear. Isso pode incluir informações como seu nome, endereço, número de telefone e saldo da conta. A chave fornece acesso exclusivo a essas informações, tornando os mapas um meio eficiente e eficaz de representar uma coleção.
O que é um TreeMap Java?
Um TreeMap em Java é uma forma especial de mapa. E, como um mapa, os elementos que ele contém têm a forma de um par chave / valor. O que o torna único é que ele usa uma estrutura de árvore para armazenar as informações subjacentes. Uma estrutura em árvore é uma estrutura em que existe uma relação pai-filho entre os elementos da árvore. Essa estrutura implica ou impõe uma ordem, que é determinada pelo mecanismo de passagem da árvore. Isso também significa que encontrar um elemento específico será rápido porque, conforme você se move pela árvore, os itens são removidos da consideração.
O que é um HashMap Java?
Um HashMap em Java também é uma forma especial de mapa. Como um TreeMap, um HashMap contém elementos na forma de par chave / valor. Mas o que o torna único é que ele usa uma estrutura hash para conter as informações subjacentes. Uma estrutura hash é uma estrutura onde não há relacionamento entre os elementos no hash. Eles são simplesmente listados em ordem linear, um após o outro, como uma lista. Para encontrar um elemento, a chave passa por uma operação matemática, chamada de função hash, que determina a posição do item na lista. Isso torna a localização de um elemento mais rápida.
Como esses dois se comparam?
Em Java, ambas as estruturas são implementadas como classes. Ambos funcionam em objetos, o que significa que os elementos são objetos e têm um conjunto predefinido de operações que você pode executar. Os nomes são semelhantes em alguns aspectos e diferentes em outros. Eles fornecem funcionalidade semelhante. A verdadeira diferença está no desempenho de certas operações. Coisas como criar a estrutura ou ser capaz de encontrar uma entrada são praticamente as mesmas.
Mas, por causa da implementação, operações como adicionar um item ou excluir um item podem variar. Por exemplo, quando você adiciona um item a uma estrutura de árvore, a operação é relativamente lenta porque você tem que atravessar a árvore para encontrar sua posição de inserção. Por outro lado, para uma estrutura hash, um novo item é simplesmente adicionado na posição calculada, o que tende a ser mais rápido.
Resumo da lição
Para recapitular, um mapa é uma coleção de informações em que cada elemento consiste em um par chave / valor. A chave se traduz na posição do elemento no mapa, e o valor é o conteúdo que desejamos rastrear. Um TreeMap em Java é uma forma especial de mapa com uma estrutura em árvore para conter as informações subjacentes. Essa estrutura usa um relacionamento pai-filho entre os elementos da árvore. Um HashMap em Java também é uma forma especial de mapa, mas não há relacionamento entre os elementos no hash. Eles são simplesmente listados em ordem linear, um após o outro. Essas duas representações de mapa são semelhantes em termos das operações que oferecem, mas diferem no tempo que leva para realizá-las. Isso se deve às diferenças na implementação das operações.