Collections - Julio Cesar Nardi

Propaganda
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.
Download