Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linguagem JAVA
Contentores de Objetos
Categorias de Contentores
Conjunto
Lista
Fila de Espera
Pilha
Mapeamento
Exemplos
Array
ArrayList
Lista Ligada
Objeto X
Objeto Y Contentor
Objeto Z
Categorias de Contentores
Conjunto
Lista
Fila de Espera
Pilha
Mapeamento
Exemplos
Array
ArrayList
Lista Ligada
Exemplos
• Indexados Elemento:
// Índice; nº 2
inteiro desde 0
Conteúdo: Objeto X
elementos objeto objeto objeto X objeto ... objeto objeto
índices 0 1 2 3 ... n-2 n-1
Declarar um array
Java
Arrays são objetos
tipo nomeArray[ ];
nomeArray = new tipo[ dimensão ];
Exemplos RAM
Automovel autos[ ] = new Automovel [20];
autos[0]
Automovel[ ] autos = new Automovel [20];
autos[1]
Automovel autos [ ];
autos[2]
autos[ ] = new Automovel[20];
...
...
autos[0]
autos[1]
autos[2]
Objeto
...
autos[19]
...
nomeArray[índice]
autos[0]
Exemplo
autos[1]
autos[2]
autos[2]
Um elemento autos[19]
Categorias de Contentores
Conjunto
Lista
Fila de Espera
Pilha
Mapeamento
Exemplos
Array
ArrayList
Lista Ligada
Elemento 1 Objeto X
Elementos
Elemento 2 Objeto Y Contentor contêm
Objetos
Elemento N Objeto Z
E1 E1 E2 E1 E2 E3 E1 E2
Array Dinâmico
RAM
...
Elemento 1 referência
ArrayList ...
Elemento m referência
...
atributo 1
objeto ...
atributo N
...
atributo 1
objeto ...
atributo M
Construtores
Métodos de Instância
public ArrayList(Collection<? extends E> c); // permite copiar arrayList recebido por parâmetro
// há partilha de objetos
plantel.add( "Nico" );
plantel.add( "Bruno" );
plantel.add( 1, "Artur" );
plantel.set( 1, "Eduardo" );
}
}
...
plantel.remove(2);
plantel.remove("Bruno");
plantel.clear();
}
}
boolean contains(Object obj) retorna true se obj estiver na lista; caso contrário, retorna false
usa o método equals de obj
int indexOf(Object obj) retorna o índice da 1ª ocorrência de obj na lista, caso exista
caso não exista, retorna -1; usa o método equals de obj
...
Exemplo
for( Object obj : nomes ){ // lê-se: para cada obj da lista nomes faz
if( obj!=null ) // arrayList pode ter elementos null
System.out.println( obj );
}
Categorias de Contentores
Conjunto
Lista
Fila de Espera
Pilha
Mapeamento
Exemplos
Array
ArrayList
Lista Ligada
Objeto 1
Objeto 2
Objeto 3
...
Objeto N
Lista
Nó 1 Nó 2 Nó 3 Nó 4
Cabeça Cauda
da lista da lista
Cada nó guarda
Um elemento (objeto) da lista // Java: tipo Object Elemento
Referência do próximo nó Próximo Nó
Exemplo
Objeto 1
Objeto 1 Objeto 2 Objeto 3
Objeto 2
Nó 2 Nó 3 null
Objeto3
Lista
Nó 1 Nó 2 Nó 3
Cabeça Cauda
Nelson Freire (ISEP–DEI-PPROG 2012/13) 30/33
Lista Ligada Serviços Típicos de uma Lista Ligada
Inserir objeto
Na cabeça da lista
Na cauda da lista
Na n-ésima posição
Nó 1 Nó 2 Nó 3 Nó 4
Remover objeto
Na cabeça Cabeça Cauda
da lista da lista
Na cauda
Na n-ésima posição
Procurar objeto
NOTA
Implementação da classe Lista Ligada é transparente para o utilizador dela
Utilizador não precisa de saber que objetos são guardados em nós
Métodos públicos só passam, por parâmetro, os objetos a armazenar
tamanho 0
veiculos.inserirACabeca(v1);
cabeca Nó 1 v1
veículos
tamanho 1 null
Nó 1
Veiculo v2 = new Veiculo(“Toto”);
v2 nomeProp Toto
veiculos.inserirACabeca(v2);
cabeca Nó 2 v2 v1
veículos
tamanho 2 Nó 1 null
.... Nó 2 Nó 1
Nelson Freire (ISEP–DEI-PPROG 2012/13) 32/33
Lista Ligada Exercício da Aula Prática
public class TesteListaLigada {
public static void main(String[] args) {
...
veiculos.removerACabeca();
cabeca Nó 1 v1
veículos
tamanho 1 null
Nó 1
veiculos.removerACabeca();
cabeca null
veículos
.... tamanho 0
}
}