Fala galera beleza bem-vindos ao canal masterdev canal de programação e Tecnologia meu nome é Thiago e hoje vou começar uma série nova de conteúdos vou trabalhar um pouco mais sobre Java básico nesse primeiro vídeo vou trabalhar a questão de Java collections através da utilização de listas mapas e 7 então eu vou dar uma explicada basicamente de como funciona cada um deles qual é a melhor forma de utilizar cada um para que serve cada um E como que funciona essa questão do collections como um todo nos próximos vídeos vou trabalhar a questão de outras classes e
também aprofundar um pouco mais sobre essa questão de listas e estruturas básicas de dados dentro do Java mas antes de começar o vídeo eu vou pedir para você deixar o like aqui nesse vídeo se inscreva no canal assim eu posso trazer cada mais conteúdos aqui para o masterderm e bora para o vídeo Então vamos lá pessoal então o que que é Java collections também conhecida como API de collections do Java trata-se de um conjunto de classes e interfaces que Visa padronizar a forma com que os dados objetos são organizados seja em listas mapas ou então
listas interligadas essa pi também define como que os dados vão ser adicionados como aqueles vão ser consultados removidos como você faz uma interação sobre essas listas de objetos a motivação da criação dessa lei de coleções veio lá da época da linguagem estruturada como por exemplo linguagem C onde era trabalhado muito com a Reis Então você tinha muita dificuldade em fazer agrupamento de objetos em listas caso né então você tinha que se preocupar com a locação do Arreio então por exemplo se você tinha uma rede 10 A partir do momento que você precisasse adicionar um décimo
primeiro elemento você tinha que fazer a reestruturação de Sr você teria que criar um novo arreio por exemplo com 20 posições teria que fazer a cópia de cada um daqueles elementos do primeiro arreio parece a segunda rei dimensionado né então você tinha muito trabalho braçal para fazer uma coisa que agora já está simples aqui na utilização da linguagem Java então aqui eu analisando então nessa imagem dessa page Collection nós temos por exemplo collections que é uma interface base dela surgem alistia sete e aquilo já aqui no lado direito a gente tem por exemplo map que
é uma interface direcionada para mapas nesse vídeo nós vamos trabalhar apenas list 7 e map o list é o mais clássico e o mais utilizado de todos basicamente Ele oferece uma interface padrão de como uma lista de qualquer objeto pode ser organizada ele fornece métodos para adição metros para remoção consultas e tudo mais já o 7 é muito similar ao lixo porém ele trabalha com a premissa que os elementos não se repetem E para isso ele utiliza algumas estratégias de acordo com cada implementação dessa interface o mapa é um conceito de chave e valor então
para cada objeto que eu vou armazenar essa lista ele tem que ser adicionado através de uma chave e essa chave ela pode ser qualquer tipo de objeto desde que ela tenha implementação do método hash que é um identificador Global das informações daquele objeto bom agora vamos para a parte prática para trabalhar com essas três listas eu vou utilizar aqui uma classe base chamada pessoa essa classe base possui duas variáveis aí de e nome eu tenho Gate 7 para cada uma delas e também eu tenho aqui já a implementação do método has code e o método
icous então primeiro vamos trabalhar aqui com o exemplos de list para isso eu vou declarar a interface Liste pessoa igual Pessoas igual mil a Playlist aqui eu preciso importar a classe eu vou importar a classe Java útil list Então eu tenho aqui já uma rei de pessoas vejam que eu tenho aqui uma implementação no caso a Playlist que é uma classe que implementa a interface bicho existe em outras implementações Como por exemplo o Vector porém a classe Vector já não é utilizada faz algum tempo pois a classe ela possui uma performance melhor que o Vector
antes de começar a falar aqui do list eu voltei aqui na classe pessoa e eu adicionei um Construtor com os dois Campos aqui para facilitar na hora de criar os objetos Então vamos voltar agora lá para o exemplo da lista então aqui agora eu vou começar a instanciar os objetos então por exemplo pessoas ponto add New pessoa passar aí de um João então aqui nessa lista eu já consigo utilizar a adição de pessoa o método add é utilizado para você adicionar objetos nessa lista Então como é que eu faço para recuperar um objeto dessa lista
então por exemplo pessoa a igual pessoas.guete zero então Estou recuperando a pessoa do índice zero agora se eu quiser remover essa pessoa dessa lista eu faço pessoas ponto remove eu posso passar o ar que seria o próprio objeto eu posso passar o índice também que ele também vai remover Como eu faço por exemplo para interagir sobre todas as pessoas ou objetos dessa lista então eu faço um forte pessoas então aqui para cada objeto ele vai atribuir essa variável e eu posso fazer alguma coisa aqui como por exemplo imprimir o nome da pessoa um outro ponto
aqui como eu falei anteriormente essa lista aqui não me impede de eu adicionar o mesmo objeto duas vezes então eu posso fazer aqui pessoas ponto add a que ele vai aceitar e vai ter duas referências para esse mesmo objeto aqui então quando fizer Por exemplo essa interação aqui esse objeto vai printar duas vezes o nome João eu vou só fazer uns ajustes aqui eu vou tirar esse remove para a gente fazer essa verificação eu vou colocar esse print aqui debaixo de novo para a gente ver o antes e depois vou colocar aqui só um quebra
de texto aqui então separar o antes e o depois tá então executando aqui então vejam que antes tinha uma pessoa e depois da adição do objeto ele tem duas duas referências para o mesmo objeto isso não vai acontecer quando a gente utilizar o set então agora vamos passar ao fazer o mesmo exemplo com sete Então primeiramente eu vou declarar aqui um sete pessoa Pessoas igual New headset Essa é a classe headset que implementa a interface pessoas então aqui a gente vai vamos só fazer um importe aqui e vamos colocar um ponto de vista então eu
já tenho aqui o objeto pessoas Então agora que eu tenho uma variável 7 de pessoas eu vou começar a adicionar os objetos primeiramente eu vou declarar aqui uma pessoa João igual mil pessoas João então eu já tenho esse objeto então vou fazer aqui pessoas ponto addual para mostrar como é que ficou eu vou fazer uma interação aqui e eu vou imprimir os elementos que estão dentro desse set vou rodar aqui vejam que ele possui somente um elemento chamado João agora se eu fizer o seguinte eu vou também duplicar aqui e vou chamar essa mesma operação
aqui pessoas ponto A bebê João em seguida vou imprimir novamente a lista para ver se ele duplicou o registro então eu vou executar aqui vejam que agora Ele só possui um elemento João pois o que que ele fez por baixo ele utilizou o método Reche code para saber se aquele objeto já estava presente na lista Então como deu uma identidade Idêntica com objeto anterior ele não adicionou aquele registro Tá mas o que acontece se eu adicionar um novo objeto na lista só fizeram aqui um mil pessoas João com o mesmo ID ele não vai deixar
vamos mostrar aqui vejam que ele não duplicou mesmo sendo objetos diferentes aqui eu tenho uma Instância e aqui eu tenho outra Instância Ele simplesmente já disse que aquele objeto já está na lista Como que eu posso também fazer essa verificação sem precisar ter que fazer interação nos registros o método add possui um retorno do tipo bulha então eu posso fazer a validação bolha adicionou igual pessoas quanto add E aí eu posso fazer um item adicionou eu posso ser adicional eu posso fazer um South adicionou é o sim não adicionou então eu vou tentar colocar o
objeto duplicado em seguida vou fazer essa verificação e colocar aqui uma mensagem de lock só para saber se aquele objeto foi adicionado não vou executar aqui vejo que ele colocou aqui que ele não adicionou o objeto e como já tava mostrando antes o registro do Corinthians agora vamos trabalhar aqui também com mapas como que eu trabalho com mapas Então primeiramente mapa E aí eu vou dizer aqui por exemplo chave long e objeto vai ser pessoa mapa eu vou importar a classe aqui mapa do pacote Java útil e eu vou instanciar aqui uma implementação desse mapa
e o resto map então aqui eu vou utilizar a mesma estratégia do 7 e estou dizendo que é o mapa baseado em hash então eu vou indexar os valores de chave e valor através do hash Então esse método long aqui quando eu adicionar na lista ele vai pegar o resto desse valor e vai colocar lá numa variável interna dele de controle para saber como que eu posso depois trabalhar esse valor isso daqui é muito bom para trabalhar com acesso rápido ao objeto imagina que você tenha uma lista de mil registros e você precisa rapidamente pegar
o registro com um índice tal em vez de você ter que fazer uma interação toda vez numa lista ou não 7 você usa o mapa desde que você tenha uma carreira indexação desses valores em seguida você pode acessar os rapidamente Isso aqui é uma estratégia muito utilizada Com cash e tudo mais por exemplo o Heads é um Framework para fazer armazenamento de chave valor é muito parecido esse aqui essa implementação Lógico lá tem um monte de outras coisas mas aqui já dá para ter uma ideia de como que funciona isso então vamos adicionar elementos aqui
para isso também eu vou instanciar aqui pessoa João agora eu vou adicionar esse elemento ao mapa tem um mapa ponto a chave do mapa no caso aqui vai ser o id e objeto vai ser o João agora Como que eu faço esse excesso rápido ao mapa então por exemplo mapa.get e aqui eu tenho que passar aqui não o índice então vou passar aqui um l e ele vai me retornar o objeto que eu coloquei lá em cima Então imagina que você tenha uma lista gigantesca imagina que você tivesse interagir com todos os registros até achar
o elemento específico mesmo utilizando o filtro ou o que seja isso vai ter um custo alto de performance se você prendexar os valores Ou seja você pegar uma lista e fazer uma adição ao mapa de forma prévia em seguida você pode fazer um processamento precisando fazer uma consulta nesse mapa esse processo vai ser muito superformático e você vai ter muito mais ganhos na sua aplicação Então é isso Pessoal espero que vocês tenham gostado Já vá collections é muito utilizado no dia a dia é muito importante você saber quando utilizar lista quando você pode utilizar o
mapa para você ganhar um pouco de performance na hora de precisar recuperar algum registro como você pode trabalhar com sete para impedir que as suas listas contém objetos duplicados e tudo mais nos próximos vídeos eu vou também trazer ainda um pouco de collections bem para fundar um pouco mais nessa questão de arreis explicar como é que é a estrutura de uma rede independente da linguagem e também vou trazer outras oportunidades de vídeos como por exemplo listas interligadas e tudo mais espero que vocês tenham gostado do conteúdo um forte abraço a todos e até o próximo
vídeo