Sei sulla pagina 1di 2

Pessoal!

A seguir temos um exemplo de listas sequenciais para iniciar


nossos estudos sobre estas estruturas. No exemplo a seguir,
temos a classe SequentialList onde é declarada uma lista
sequencial de objetos, cujo tamanho será definido no momento em
que o objeto for instanciado.
É definido também o método merge. Este método recebe uma lista
sequencial por parâmetro e insere seus elementos no final da
lista do objeto que chamou o método.

public class SequentialList {

//atributos da classe
protected Object list[]; //declaração da lista
protected int last = -1; //indice final da lista

//constructor da classe

public SequentialList (int size){


list = new Object[size];
}

… // aqui estão os outros métodos

public void merge (SequentialList l){ //recebe um objeto


sequentialList por larâmetro
for (int i = 0; i <= l.last; i++){ //percorre toda a
lista do objeto recebido por parâmetro
this.add(l.get(i)); //adiciona no final da lista da
classe que chamou o método, elemento a elemento da lista
recebida.
}
}

public SequentialList copyList (){ //outro método a ser


construido
SequentialList listtmp = new SequentialList(this.getSize());
//instancia a lista que deve receber os valores em cópia da
originas e que será retornada.
for (int i = 0; i <= last; i++){ //percorre a lista do
objeto que chamou o método
//inserir cada elemento da lista do objeto que
chamou o método no final da lista que irá retornar
}
return listtmp; //retorna a lista criada
}
...

public class SequentialListTest {

public static void main(String[] args){


//instancia duas listas
SequentialList lista = new SequentialList(5);
SequentialList lista2 = new SequentialList(5);

//adiciona elementos na primeira lista


lista.add(new Integer(1));
lista.add(new Integer(2));
lista.add(new Integer(3));
lista.add(new Integer(4));
lista.add(new Integer(5));
lista.add(new Integer(6));
lista.print(); //imprime na tela os elementos da
primeira lista

//adiciona elementos na segunda lista


lista2.add(new Integer(8));
lista2.add(new Integer(7));
lista2.add(new Integer(10));
lista2.print();//imprime na tela os elementos da segunda
lista

lista.merge(lista2); //chama o método merge passando a


segunda lista criada.

lista.print();//mostra a lista completa


}

Potrebbero piacerti anche