Slide 1 - Unisinos

Propaganda
Programação II
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos
- São Leopoldo -
Classes de Exceção
public class UnderflowException extends Exception {
public String toString() {
return "UNDERFLOW!";
}
}
public class OverflowException extends Exception {
public String toString (){
return "OVERFLOW!";
}
}
Programação II – Prof. Mateus Raeder
Listas com Exceções
public class SequentialListComExcecao {
private int list[];
private int last = -1;
public SequentialListComExcecao(int size) {
list = new int[size];
}
public boolean isEmpty() {
if (last == -1)
return true;
else
return false;
}
public boolean isFull() {
if (last == list.length - 1)
return true;
else
return false;
}
public int getSize() {
return last + 1;
}
Programação II – Prof. Mateus Raeder
Listas com Exceções
public void insert (int element) throws OverflowException {
if (isFull())
throw new OverflowException();
else
list[++last] = element;
}
public void insert(int element, int index) throws
OverflowException, ArrayIndexOutOfBoundsException {
if (isFull())
throw new OverflowException();
else if (index < 0 || index > last + 1)
throw new ArrayIndexOutOfBoundsException();
else{
for (int i = last + 1; i > index; i--) {
list[i] = list[i - 1];
}
last++;
list[index] = element;
}
}
Programação II – Prof. Mateus Raeder
Listas com Exceções
public int remove(int index) throws UnderflowException,
ArrayIndexOutOfBoundsException {
if (isEmpty())
throw new UnderflowException();
else if (index < 0 || index > last)
throw new ArrayIndexOutOfBoundsException();
else{
int el = list[index];
int numberofElements = last - index;
if (numberofElements > 0) {
System.arraycopy(list, index + 1, list, index,
numberofElements);
}
last--;
return el;
}
}
Programação II – Prof. Mateus Raeder
Listas com Exceções
public int get (int index) throws UnderflowException,
ArrayIndexOutOfBoundsException {
if (isEmpty())
throw new UnderflowException();
else if (index < 0 || index > last)
throw new ArrayIndexOutOfBoundsException();
else
return list[index];
}
public void print() {
for (int i = 0; i <= last; i++)
System.out.println(list[i]);
}
}
Programação II – Prof. Mateus Raeder
Bibliotecas Java
Classes da biblioteca Java que implementam listas em Java:
– java.util.Vector
– java.util.ArrayList (desde versão 1.2)
Qual a diferença?
– Vector é sincronizado, assim todos os métodos da classe
Vector são thread-safe (garante integridade dos dados quando
mais de uma thread acessa)
– Sincronização tem um custo no desempenho, assim
quando não é necessário sincronizar, melhor utilizar ArrayList
Programação II – Prof. Mateus Raeder
Download