03-03-2011. Java Colections. Listas, Pilhas, Filas; Set; Map; Array:
Lista:
Inclusão. Em uma lista derivada de um Array, incluir elemento no final, trabalho pequeno simplesmente inserir. Outra lista, já pronta inteira, temos que criar um novo array MAIOR e copiar o antigo e inserir o novo. Lista ligada – Inserir o ultimo referenciando o anterior Remoção. Transformar o numero em NULL , assim apagar o registro antigo e deixar vazio. Subir outra posição Algumas atividades são melhores em arrays enquanto outras são melhores em listas. Conjuntos não podem ter conteúdos repetidos ! Listas gastam 3 vezes mais memoria... ARVORES. Uma forma eficaz de guardar seria um ÁRVORE. Arvore Binária. Arvore – um de 1.000 elementos gera 1.000 comparações para se encontrar o resultado desejado. Arvore Balanceada – com 1.000 posições o numero de comparações máxima que eu precisarei fazer será 10 ou 11 comparações. Quanto maior o numero de elementos, mais eficiente ficara a busca na árvore. Para descobrir se uma árvore está ou não desbalanceada, devemos fazer uma comparação, se passar da taxa esperada a arvore nao esta balanceada. Árvore só é útil com elementos aleatórios, elementos ordenados fazem da arvore um LIXO ! Para colocar na árvore devemos implementar um elemento Comparable, assim todos os objetos ficam comparáveis ! Comparator – COMPARADOR um método que recebe a variável, que recebe 2 objetos e os compara. Para isso devemos colocar nossos dados em uma TreeSet.(PARA DADOS ORDENADOS) LIST. Bloco de espalhamento. Como reduzir a chance de colisão: 1 – Aumentar o array. 2 – Usar uma matriz com tamanhos baseados em numeros primos. 3 – ter um array maior do que a quantidade de dados. Reduzir é possível, eliminar é impossível. Caso tenha completado as posições, podemos criar um novo array, copiar o antigo e realocar os numeros. Níveis de array. 2 objetos iguais tem o mesmo hashCode( );
o hashCode( ) é um inteiro. Tabelas de espalhamento – outra tabela criada para listar os elementos presentes em minha matriz. Listar os elementos da minha lista nuca se sabe como será ! Determinar se o elemento esta ou não dentro da lista, é mais facil com um Hash[smtg] Na utilização de um MAPA, temos um chave principal para encontrar. Nunca mexer no equals sem mexer no hashCode, por que se eles forem diferentes, diferente também será diferente a colocação na lista.HashSet. (NÃO SERV QUANDO SE QUER ELEMENTOS ORDENADOS). CRUD '-' CRUD – Create; Retrieve; Update; Delete. Trabalhinho Fazer um CRUD COMPLETO com a classe aluno, em relação ao Nome e Prontuario. Esse programa também deve verificar e LISTAR os alunos segundo prontuário, nome e data de nascimento, as listagem devem poder ser efetuadas em ordem Crescente ou Decrescente. Nome, Prontuário, Data de Nascimento [dia e mes & dia mes e ano] Aplicação Gráfica !! UI → CONTROLE. TESTES UNITÁRIOS ! Comparator = x(-1)