Na lição de hoje, vamos falar sobre conjuntos. Existem muitos métodos que Java usa para processar listas e cada um faz uma coisa específica. Então aqui está uma lista dos métodos e suas descrições, e depois mais alguns métodos e descrições. Basicamente, você pode criar uma lista, inserir elementos, remover elementos, classificá-los, localizá-los com base em seu índice, encontre-os com base em seus valores, encontre o tamanho, descobrir quantos itens estão na lista, e procure por itens na lista que contêm determinados valores. Mais uma vez, esses métodos que exibimos aqui são usados como referência. Vamos dar uma olhada na diferença entre um conjunto, uma lista e um mapa. Primeiro, um conjunto é uma coleção não ordenada. Uma coisa sobre um conjunto é que eles são todos objetos únicos, o que significa que você não pode ter duplicatas. Uma lista ordena a coleção, e eles são colocados em ordem de inserção. Agora encontramos listas antes quando falamos sobre ArrayLists e LinkedLists e há também uma classe Vector. Um mapa fornece um valor de chave, como um índice onde podemos consultar esse índice e encontrar os valores. Um HashSet é um conjunto de propósito geral. E assim como um conjunto regular, podemos ter um LinkedHashSet e um TreeSet. Nós vamos ver isso nos próximos programas. Para listas, existem ArrayLists e LinkedLists e como dissemos, uma lista de vetores, e há as definições daqueles. Como sabemos quais usar? Bem, você deve usar uma lista se você precisar acessar elementos com frequência usando o índice. O ArrayList fornece acesso mais rápido com um índice ou se você quiser armazenar elementos e você precisa deles na ordem em que são inseridos. Você deve usar um conjunto se você quiser criar uma coleção de elementos exclusivos e você não quer duplicatas. TreeSet é um conjunto variado. LinkedHashSet também mantém a ordem de inserção. E você deve usar um mapa se armazenar dados na forma de uma chave e valor, e você pode escolher um HashTable ou um HashMap. Aqui está um programa que ilustra um conjunto. Neste programa, decidi criar dois conjuntos diferentes. Um para o número de jogadores aposentados do New York Yankee. O segundo são os nomes dos jogadores que têm seus números aposentados. Como você pode ver no canto superior esquerdo da tela, Eu trago a biblioteca java.util e crio uma matriz de todos os números retirados, e eu os coloco em ordem numérica. Você notará que há dois círculos, um para o número oito e um para o número 42. Agora você pode não ser um fã de beisebol, mas o número oito foi aposentado duas vezes pelos Yankees, uma vez para Bill Dickey e uma vez para Yogi Berra. E o número 42 foi aposentado uma vez pela liga principal de beisebol para Jackie Robinson e uma vez para os Yankees para Mariano Rivera. Agora mencionamos que um conjunto não permite duplicatas. Então vamos ver o que acontece. Criamos nas linhas 21 e 22, criamos dois conjuntos. Um dos inteiros de números aposentados e um uma série dos jogadores. Na linha 24 eu uso um bloco try-catch para ter certeza de que não estou inserindo duplicatas. E se eu pegar esse erro e lançar uma exceção que não aborta o programa. Eu crio um loop que diz vamos começar do zero e ir até o número 22. Portanto, há 23 números aposentados para os Yankees. E eu adiciono cada um dos números retirados ao conjunto. Então eu adiciono cada um dos jogadores para definir dois. As linhas 30 a 32 imprimem a lista não ordenada. E como você pode ver, os números estão em ordem um tanto aleatória. Começa com 32 e depois 1, 2, 3, 4, 5. Então vai para 37, 6, 7, 8, 9, 10. Apenas um 42, apenas um oito aparecem na lista não ordenada de números. Esses números, por serem duplicatas, não foram inseridos na lista. Assim, a linha 31 imprime a lista não ordenada de números. A linha 32 imprime a lista não ordenada de nomes. Na linha 34, ordeno os números e eu crio um TreeSet chamado números ordenados. E então eu imprimo todos os números aposentados do New York Yankees na ordem correta. Isso acontece na linha 36. Também posso ligar para o primeiro e último números da lista. E me diz que o primeiro número da lista é o número um e o último número da lista é o número 51. Finalmente, no programa, tenho uma instrução catch que combina com a minha tentativa de detectar quaisquer erros, especialmente aqueles em que estou tentando inserir um número duplicado. Então agora você sabe que um conjunto é uma coleção que não contém elementos duplicados. Em nossa próxima aula, falaremos sobre como uma lista faz um trabalho semelhante.