‫E nesta lição, abordaremos as tabelas hash e também examinaremos os dicionários mais tarde.
‫Portanto, tabelas de hash e dicionários são algumas das coleções mais úteis em C Sharp.
‫Portanto, veremos como defini-los e como usá-los e, nesse cenário, devemos aproveitá-los para entender
‫o conceito de hashing e tabelas.
‫Primeiro, pense em um dicionário de verdade.
‫Portanto, suponha que temos um dicionário alemão e inglês onde cada palavra em alemão corresponde a apenas uma palavra
‫em inglês, porque essa seria a limitação aqui.
‫Então, quando tentamos traduzir a palavra auto, que em alemão se traduz basicamente em carro
‫em inglês, usamos uma palavra como palavra-chave que podemos pesquisar, por exemplo, e obtivemos uma tradução como
‫resultado.
‫Portanto, sempre há esse relacionamento de um para um.
‫Portanto, temos automóvel e isso se traduz em automóvel.
‫E podemos fazer exatamente isso, também usando tabelas hash e vamos usar isso em um exemplo muito específico
‫aqui.
‫Então, digamos que temos um sistema de registro de alunos onde cada aluno tem uma identidade e muitos outros dados,
‫como nome, idade, notas e foto e assim por diante.
‫Para que esse sistema funcione, precisaremos de uma identificação especial para cada aluno.
‫Portanto, tem que ser único.
‫Se tivéssemos de armazenar esses dados usando uma tabela hash ou um dicionário, a ID do aluno seria a chave
‫e os dados do aluno seriam um objeto que contém todas as outras informações do aluno e esse seria o
‫valor.
‫Portanto, sempre temos esse par de valores-chave.
‫OK, então é assim que você pode encontrar os dados reais, por assim dizer, e este é o valor que está por trás deles.
‫Então você pode ver como um armário.
‫Então essa é a ideia do armário ou a localização do armário.
‫Podem ser diferentes tipos de dados.
‫Não precisa ser um ID e esse será o valor.
‫Portanto, o dicionário deve ser do mesmo tipo em uma tabela hash.
‫Eles podem ser de diferentes tipos.
‫Portanto, pode ser um número inteiro e pode ser um objeto, por exemplo.
‫Portanto, vamos examinar primeiro as tabelas de hash.
‫Portanto, vamos criar uma nova classe ou, na verdade, preparei uma nova classe para isso.
‫Vamos colocar aqui.
‫E tem algumas propriedades.
‫Possui uma propriedade de ID, uma propriedade de nome e o GPA.
‫E então temos um construtor muito simples, simplesmente atribuindo o valor.
‫Portanto, qualquer ID que passarmos para o objeto de aluno quando o criarmos será o ID desse objeto de aluno e assim
‫por diante.
‫OK, nada muito sofisticado aqui.
‫Estamos usando apenas uma aula normal, conforme vimos no capítulo da aula.
‫Agora, podemos, é claro, ir em frente e criar essa classe em um arquivo separado para que
‫possamos ir em frente e abrir nosso explorador de soluções.
‫Vá em frente e crie um novo arquivo aqui.
‫Portanto, adicione um novo item ou uma nova classe, como escola e estudante universitário.
‫Mas, para este exemplo, vou mantê-lo simples e colocá-lo em um arquivo.
‫Como você sabe, é uma prática recomendada colocá-lo em um arquivo separado para que você não misture coisas e
‫possa localizar arquivos e classes com mais facilidade e tudo mais.
‫OK, agora que temos nossa classe de aluno, podemos prosseguir e criar uma tabela hash.
‫OK, então dentro do nosso programa aqui, no método principal, é onde vou
‫definir uma nova tabela hash e será como, então, tabela hash e vou chamar esta tabela, que será nova
‫tabela de hash.
‫A classe da tabela hash está dentro das coleções do sistema, então precisamos adicionar este namespace aqui usando o
‫sistema que as coleções, então a tabela hash e é diferente do namespace das tabelas hash porque é
‫assim que chamei my, o que pode confundir nossa ideia aqui se quisermos para entrar na tabela hash sem ter
‫este namespace adicionado ao nosso projeto.
‫Mas agora que o temos dentro de nossa classe de programas, podemos usá-lo.
‫Portanto, temos essa nova tabela hash, que agora será uma tabela de dados e podemos colocar os dados que quisermos
‫nela.
‫Portanto, é assim que você pode criar uma tabela hash, como inicializá-la com um objeto de tabela hash como
‫fizemos aqui.
‫Agora o que podemos fazer é atribuir valores a essa tabela hash e podemos até chamá-la de tabela de alunos
‫para tornar nosso código um pouco mais legível.
‫Agora só precisamos criar um grupo de alunos que queremos ter em nossa mesa.
‫Então, deixe-me adicioná-los aqui também.
‫Vou chamá-los de Studd one start dois a três a quatro, e todos serão novos objetos de aluno.
‫Então aqui vai ser o aluno com a carteira de identidade.
‫Uma será Maria Chiasm GPA de 98.
‫E temos Jason, que terá a ideia de um.
‫Essa é essa ideia, o identificador único, por assim dizer, e depois o GPA que os alunos têm.
‫OK, agora temos todos esses alunos e podemos atribuí-los à nossa mesa de alunos usando a identificação do aluno.
‫E a boa prática seria seguir em frente e manter os alunos na mesa que somam.
‫E aqui costumávamos roubar um I. D. Portanto, este aqui, a propriedade como a chave.
‫Então você pode ver aqui uma tabela hash nos permite ter um objeto do tipo key off então pode ser
‫qualquer tipo de objeto como a chave e pode ser um objeto opcional ou anulável tem o valor para que possamos atribuir um valor
‫que pode ser nulo , mas vamos atribuir um valor e esse será o próprio aluno assim.
‫OK, agora adicionamos nosso aluno um à nossa mesa de alunos e podemos fazer a mesma coisa com os outros
‫alunos e usaremos seus IDs para cada um deles.
‫Portanto, vamos usar a tabela de alunos aqui para todos os.
‫OK, então essa é a nossa tabela hash agora.
‫Mas como podemos buscar entradas, então como podemos recuperar entradas de nossa tabela hash?
‫Bem, vamos ver maneiras diferentes de fazer isso.
‫Portanto, a primeira coisa que podemos fazer é apenas criar um objeto de aluno aqui.
‫Assim, aluno e este objeto serão chamados de aluno armazenado.
‫OK, então vou obter o valor do aluno da minha tabela.
‫Portanto, neste caso, é a mesa do aluno.
‫Alunos mesa assim.
‫E aqui, da mesma forma que faço exercícios em uma matriz, como X é um valor em uma matriz, posso acessá-lo por meio de
‫um ID.
‫Então, aqui, por exemplo, digamos que eu queira obter o da Idy assim.
‫Portanto, aqui o problema é que essa tabela hash pode ter valores do tipo objeto.
‫Certo, como vimos antes.
‫Portanto, aqui, se prosseguirmos e chamarmos o método ADD, você verá que podemos atribuir uma chave, mas o valor será
‫do tipo objeto.
‫E isso significa que este aqui será do tipo objeto.
‫Mas não podemos atribuir apenas um tipo de objeto ao aluno.
‫Tem que ser do tipo aluno porque esse aluno é, na verdade, do tipo aluno.
‫OK, então precisamos ter certeza de que o colocamos em um aluno aqui e então isso funcionará.
‫OK, então estamos lançando este objeto em um aluno porque sabemos disso dentro da mesa do aluno na
‫posição um.
‫Então no ID um, o valor será na verdade do tipo aluno.
‫OK, então aqui você pode obter o aluno em um, você pode obter a carteira de estudante também e assim por diante.
‫Mas isso só funciona porque sabemos que estamos usando de fato esses números.
‫Então, se você quiser obtê-lo, caso contrário, você pode usar um stand by ID.
‫Portanto, agora você terá o valor por trás da ID do aluno.
‫Portanto, isso basicamente fornecerá esse valor.
‫Aqui está o aluno aqui.
‫E é este aqui para ser preciso, este aqui, porque é isso que estamos armazenando neste aqui.
‫Portanto, agora podemos prosseguir e fazer algo como isto, onde agora, em vez de Friday Hello World, vamos realmente escrever algo útil,
‫onde escreveremos o aluno I. D. , o nome do aluno, bem
‫como seu GPA.
‫Então, vamos usar o ID de um pensamento do aluno.
‫Então, pegamos sua identidade, pegamos seu nome e pegamos seu GPA e, neste caso, como o GPA dela e assim por diante,
‫porque é Marea na posição um que eu quero.
‫OK, então vamos executar isso e você poderá ver as IDs dos alunos.
‫Um dos nomes é Maria Antipas, 98.
‫Aqui, vimos como podemos criar uma tabela hash.
‫É assim que podemos armazenar os dados e, em seguida, a tabela hash.
‫Na verdade, é aqui que armazenamos os dados e uma tabela hash.
‫E é assim que podemos recuperar dados de uma tabela hash.
‫Portanto, agora vamos supor que queremos realmente imprimir todos os dados dentro de nossa tabela hash e não temos
‫uma chave particular à nossa disposição.
‫Podemos simplesmente fazer isso obtendo todas as chaves de nossa tabela de hash para resolver isso.
‫Primeiro, temos que discutir uma estrutura chamada entrada de dicionário sempre que adicionarmos uma nova entrada à nossa tabela
‫hash.
‫Portanto, nosso par de valores-chave e o novo objeto de entrada de dicionário serão criados para nós e serão inseridos em
‫nossa tabela hash, o que significa que uma tabela hash é basicamente uma coleção de entradas de dicionário.
‫Portanto, usando um objeto temporário de entrada de dicionário, podemos percorrer nossa tabela hash usando um para cada loop.
‫Então, vamos dar uma olhada neste exemplo particular aqui, onde irei adiante e usarei isso para cada loop
‫aqui.
‫E isso para cada tipo de loop será a entrada do dicionário.
‫Essa é a estrutura da qual eu estava falando.
‫Você pode ver aqui a entrada do dicionário de estrutura.
‫Então, qual é o nome do item que vou usar?
‫Vou usar a entrada.
‫Claro, você pode ligar para o aluno ou o que for, porque você sabe que as entradas serão do tipo
‫aluno.
‫Mas digamos que você não saiba.
‫Você também pode chamá-lo de entrada.
‫E então qual é a coleção pela qual queremos executar isso ou da qual queremos obter os valores?
‫E essa será a mesa dos nossos alunos.
‫Portanto, este recupera.
‫Item individual com ID conhecido.
‫E aqui.
‫Recupere todos os valores de uma tabela hash.
‫OK, então uma entrada dentro de nossa tabela hash é do tipo entrada de dicionário, como eu disse.
‫Então, isso nos permite agora passar por isso.
‫Tabela a tabela de alunos e basicamente exibe os valores então aqui, porque entrada, o valor irá retornar um objeto que você pode ver aqui, diz
‫objeto, mas o que queremos a fim de obter os detalhes do aluno vai ser um
‫objeto de aluno.
‫O que precisamos fazer é fazer o seguinte para criar um valor temporário, que será nosso
‫valor de entrada.
‫Agora temos o mesmo problema que tivemos aqui, OK, onde precisamos lançar isso em um aluno porque é apenas
‫um objeto.
‫Direito.
‫Mas queremos que seja do tipo alunos para que possamos acessar as propriedades dos alunos.
‫Então, porque caso contrário, o valor de entrada pensou que não o teria aqui.
‫Não consigo acessar o ID, não consigo acessar o nome, todas essas coisas, mesmo que exista lá.
‫Mas nosso ID simplesmente não permite isso porque primeiro precisamos nos certificar de que convertemos ou lançamos o valor no tipo
‫certo, que será o nosso tipo de aluno.
‫Agora estamos lançando.
‫Estamos armazenando temporariamente e agora podemos prosseguir e escrever os valores individuais em nosso console, por exemplo,
‫ou usar em nosso programa como quisermos.
‫Portanto, aqui podemos usar o ID do aluno usando o ID temporário porque temp agora é do tipo aluno e o
‫aluno tem ID, nome GPA e podemos acessar todos esses para iterar por meio de toda a lista de todos os nossos alunos.
‫Então, vamos fazer isso bem rápido.
‫Vamos rodar nosso código e ver o que isso para cada grupo faz por nós.
‫Então você pode ver que isso acontece.
‫Diz aluno para Steve.
‫Aluno três, Sclera.
‫O aluno dois é Jason e um é Maria.
‫Assim, à medida que vai de volta para o poço, começa na última entrada e vai até a primeira.
‫Agora, isto é, se neste ponto não sabemos se é um aluno, embora já estejamos convertendo em
‫um aluno, isso é apenas para mostrar a você que uma tabela hash é na verdade apenas uma coleção de entradas
‫de dicionário.
‫Então, vamos ver como podemos simplificar isso para cada grupo.
‫Podemos simplificar dizendo, de fato, para cada palavra, um tipo de variável será um aluno.
‫O nome do item.
‫Bem, você poderia chamá-lo de estudante.
‫Vou apenas chamá-lo de valor como.
‫Então está bem.
‫E a coleção que desejo examinar será feita enquanto os alunos colocam os valores dos pontos nas tabelas.
‫Portanto, há esta coleção de valores da tabela de hash, portanto, obtém uma coleção de olhos contendo os valores da
‫tabela de hash.
‫Portanto, isso nos permite examinar os valores diretamente, sem precisar.
‫Basicamente, faça o que fizemos aqui, onde convertemos ou convertemos em um objeto de aluno.
‫Agora podemos ir em frente e.
‫Faça a mesma coisa que fizemos aqui, mas agora, é claro, vai ser valorizado por mim. D. e assim por diante, porque não
‫é entrada e não é 10, mas vai ser, de fato, valor, ok, porque é isso que
‫está para cada novo.
‫Está nos dando para cada iteração dele, onde passa por todos os valores que temos e
‫os valores serão o valor individual que estamos procurando atualmente para essa iteração específica.
‫Portanto, na primeira iteração, será.
‫Steve, então será completo Jason e Maria.
‫OK, então se nos livrarmos desta linha aqui ou desta para cada loop e executarmos novamente, veremos que obteremos
‫os mesmos resultados.
‫Então, Steve, Chloro Jason e Maria.
‫OK, então essa foi uma introdução rápida às tabelas hash e no próximo vídeo, terei um pequeno
‫desafio para você, onde você basicamente estenderá um pouco o seu código para entender as tabelas hash um pouco melhor.
‫E então vamos dar uma olhada nos dicionários.