O Framework de Collections do Java fornece varias classes para manipular estruturas de dados complexas de forma abstrata.A Collection se divide basicamente em Listas e Conjuntos.Veja abaixo as principais caracteristicas de cada classe:Listas:Permitem repeticaoMantem a ordem de insercaoArrayList:A busca e feita diretamente pelo indice, por isso e extremamente rapidoA insercao e remocao dependem da quantidade de itens na listaLinkedList (Lista ligada): A busca, insercao e remocao sao feitas de forma linear, dependem da quantidade de itens na listaConjuntos: Nao permitem repeticaoNao mantem a ordem de insercaoHashSet: Mistura um array com uma lista ligadaA busca e muito eficienteA insercao e remocao tambem sao muito eficientesE impossivel determinar a ordem de saida dos dadosTreeSet (Arvore binaria): E balanceada automaticamenteA busca, insercao e remocao sao eficientesA saida dos dados sempre estara ordenadaAlem dessas classe basicas, tambem existem outras duas classe importantes:Map:E um conjunto de pares As chaves nao podem ser repetidas O percurso e feito atraves das chavesSe divide em HashMap e TreeMapProperties:E um mapa, mas com chaves e valores do tipo StringGeralmente usado para armazenar configuracoes da aplicacaoNas Collections e importante conhecer o Iterator, ele serve para navegar em uma collection:Para obter o Iterator de uma Collection utiliza-se o metodo iterator() da CollectionPara saber se existe um proximo item na Collection utiliza-se o metodo hasNext() do IteratorPara retornar o proximo item da lista, utiliza-se o metodo next() do Iterator ConceitosObjeto: Uma instancia de uma classeClasse: Um conjunto de caracteristicas e funcionalidades que definem objetosAtributos: Caracteristicas de uma classe, os dados do objetoMetodos: Uma acao executada, algo que o objeto fazMensagem: Uma chamada de metodoDiagrama de classesNotacao: Um retangulo dividido em 3 partes, na primeira fica o nome, na segunda os atributos, na terceira os metodos e caso seja necessario e possivel criar mais dicisoes.Visibilidade: Para os atributos e metodos da classe pode ser usada as seguintes notacoes de visibilidade:+ (publico): O atributo/metodo pode ser acessado por qualquer outra classe- (privado): O atributo/metodo apenas podera ser acessado pela propria classe# (protegido): O atributo/metodo podera ser acessado apenas pela propria classe e suas descendentes na heranca~ (pacote/default): O atributo/metodo pode ser acessado pelas classes que estao no mesmo pacoteAbstrata, Concreta e Interface: Uma classe abstrata nao pode ser instanciada, declara os atributos e metodos mas nao implementa. Uma classe concreta nao possui metodos abstratos e implementam todos os seus metodos (uma classe simples). Uma inteface e um contrato que informa o que a classe deve fazer mas nao tem nenhuma implementacao.Relacionamento entre classesAssociacao: Representa uma relacao tem um ou existe um. E quando uma classe faz referencia a outra classe num determinado periodo de tempo. Um objeto pode existir sem que o outro exista. E representado por uma linha entre as duas classes. E subdividido em: Agregacao: Uma relacao forte tem um que define uma propriedade, quando a classe que se relaciona deixa de existir, a classe relacionada continua existindo mas perde parte do sentido de existencia. E representado por uma linha, no lado da classe que se relaciona coloca-se um diamante sem preenchimento e no lado da classe relacionada coloca-se uma seta. Composicao: Uma relacao