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