Mapa mental
Genéricos e Coleções
Contenido del mapa
Genéricos e Coleções
Sobrescrevendo HasCode e equals
- equals,hashCode,toString são públic
- Sobrescreva toString para obter o estado do Objeto
- == duas variaveis de referencia apontam para o mesmo objeto
- Use equals para ver se 2 objetos são equivalentes
- Não sobrescrever equals = objetos não serão chaves úteis hashing
- Não sobrescrever equals = 2 objetos diferentes não podem ser iguais
- Classes String e Wrapper sobrescrevem equals e se tornam chaves adequadas hashing
- Sobrescrever equals use instaceof para avaliar a Classe correta
- Sobrescrever equals compare os atributos signficativos dos objetos
- Se sobrescrever equals sobrescreva hasCode
- Se dois objetos forem iguais = código hashing também serão
- válido método hasCode retorne o mesmo valor para todas instâncias(na prática seja ineficiente)
- variáveis transient não são apropriadas para equals e hascode
Coleções
- Coleção = estrutura de dados na qual objetos são armazenados
- Collections = Classe que armazena métodos estáticos para coleções
- Collection = java.util.Collection = Interface estendida por Set e List
- Coleções = 4 versões
- Lists de Ítens:Ordenada,repetição permitida com um índice
- Sets de ítens : Podem ou não ser ordenados e/ou classificadose e a repetição não é permitida
- Maps de Itens : com chaves: Podem ou não ser ordenados e/ou classificados e a repetição de chaves não é permitida
- Queues de ítens : ordenados por FIFO ou por prioridade
- 4 subversões das coleções : classificada,não-classificada,ordenada e não -ordenada
- Ordenada: ordem específica não aleatória
- Classificado : ordem classificada estabelecida
Atributos das Classes de Coleção
- Vector :lento,métodos sincronizados
- HashSet :não permite duplicatas, sem ordenação
- HashMap: atualiza mais rápido,chave null e muitos valores null
- LinkedList: inserção de elementos ao final : pilhas e filas
- ArrayList : iteração e acesso aleatório rápidos
- LinkedHashSet : Sem duplicatas, itera por ordem de inserção
- TreeSet: Sem duplicatas, itera na ordem de classificação
- HashTable : mais lento, nenhum valor ou chave null é permitido
- LInkedHasMap : ordem de inserção, permite chave/valor null
- TreeMap : Um mapa classificado
- PriorityQueue : lista ordenada pela prioridade dos Elementos
Classes de Coleções
- next() retorna o elemento seguinte e move o Iterator adiante
- hasNext() verifica se há mais elementos; o Iterator não se move
- Loop for aprimorado ou com Iterator via hasNext() e next()
- Só armazena objects,mas pode boxing de primitivos
- TreeSet, TreeMaps = floor() e higher()
- Filas usam offer = adicionar, poll() remove o 1 da fila, peek() ve o 1 da fila
- Chaves Map devem sobrescrever equals e hasCode
- Possível sub-cópias vinculadas de TreeSet e TreeMap
Arrays e LIstas
- Classificação na ordem natural ou com Comparable ou vários Comparators
- Comparable implementado com compareTo(), ordem de classificação
- Comparators classifica classe, implemente compare()
- Para ser pesquisado,Array ou List deve ser classificado primeiro
- List classificado e pesquisado, implementar comparable
Classes Collections e Arrays
- Fornecem : método sort()/ Classifica com comparator ou usando ordem natural
- Collections.reverseOrder() retorna Comparator que classifica ao Contrário
- Ambas de java.util
- Arrays.asList() = cria um List a partir de um Array
- Lists e Sets tem método to Array() = cria arrays
- Collections.reverse() = inverte a ordem dos elementos de um List
- método binarySearch / Busca em Array ou List pré-classificado
Genéricos
- Lhe permitem forçar a segurança de tipos em tempo de compilação
- ArrayList<Animal> aceita tipo Dog,Cat etc
- Pode passar coleção genérica para uma não genérica (resultados desastrosos)
- Coleções genéricas = sem cast
- Coleções não genéricas = com cast
- Copilar sem erros, mas pode compilar com avisos
- Genéricos com código antigo pode gerar exceção em tempo de execução
- List<?> qualquer tipo genérico pode ser atribuido a referencia,apenas para acesso
- T para o tipo e E para o elemento
- Declarar um tipo (T) usado em declaração de classes, métodos e variáveis
- Pode declarar mais de 1 tipo em uma declaração = public class UseTwo<T,X>
Información
- Descripción
- SCJP 7 (Genérico e Coleções) Estudo SCJP Mapa Mental sobre Genéricos e Coleções, creado por Cesar gomide el 09/05/2016.
- Creado por
- Cesar gomide
- Visitas
- 4
- Valoración