Orientação a Objetos com Java Julio Cesar Nardi [email protected] 2011/2 Aula 7: Collections Objetivos: Conhecer as diferentes coleções de objetos oferecidas por Java, incluindo listas, conjuntos e mapas; Entender as vantagens de cada coleção e quando utilizá-las. Agenda Collections Listas Conjuntos Mapas OO e Java Collections Uma coleção é um objeto que encapsula uma um conjunto de outros objetos e oferece formas de manipulação. Arrays (vetores) contém diversos objetos, mas têm algumas limitações. Construindo uma lista: Adicionar Acessar Inserir Remover Tamanho Tipos OO e Java Collections Java oferece, no pacote java.util, uma série de utilidades para apoiar a programação, dentre elas as coleções: OO e Java Collections Interface Collection Provê uma série de métodos para manipulação de coleções: add(object) clear() contains(object) remove(object) size() É estendida por várias outras interfaces um pouco mais específicas: Interface List Interface Set OO e Java Collections: List A interface List é implementada por classes que provêem uma lista de objetos de qualquer tamanho organizada de forma seqüencial. Características: Seqüência definida Elementos indexados Listas comuns: ArrayList: array (vetor) de tamanho dinâmico LinkedList: lista encadeada OO e Java Collections: Set A interface Set é implementada por classes que provêem um conjunto de objetos distintos, sem ordem garantida. Características: Seqüência arbitrária Elementos não repetem Conjuntos comuns: HashSet: usa uma tabela hash para indexação (mais rápida) TreeSet: usa uma árvore para indexação (por comparação) OO e Java Collections: Map A interface Map é implementada por classes que provêem um mapa de objetos que são indexados através de uma chave fornecida. Características: Pares chave/valor (vetor associativo) List de valores (podem repetir) Set de chaves (unívocas) Mapas comuns: HashMap: mapa de acesso rápido (Object.hashCode()) TreeMap: mapa ordenado em árvore OO e Java Exercícios (1) Crie uma classe Aluno (nome, endereço) e uma classe Turma (nome, número de vagas); A classe Turma deve ter uma lista de alunos matriculados em uma turma. A classe Turma deve ter um método matricularAluno que insere um aluno na turma caso haja vaga. Crie uma aplicação que crie alguns alunos e uma turma e faça a matrícula destes alunos na turma; Depois obtenha a lista de alunos matriculados na turma e exiba o nome de cada um. Observe que estamos implementando um relacionamento de mais de um elementos entre duas classes. OO e Java Aula 7: Collections Objetivos: Conhecer as diferentes coleções de objetos oferecidas por Java, incluindo listas, conjuntos e mapas; Entender as vantagens de cada coleção e quando utilizá-las.