Objota O mundo orientado a objetos

O objeto ArrayList

Posted on junho 29, 2010

Posted by Rodrigo Ireno

Neste artigo vou abordar brevemente o objeto ArrayList. Ele permite fazer uma coleção de valores e/ou objetos, ou seja, ele aceita valores primitivos e objetos. E é estremamente fácil de utilizar, pois não é necessário inicializar ele com um tamanho fixo, ele trabalha com um tamanho variável. Sendo que em qualquer momento você pode adicionar elementos e remover elementos.

Ele porém não faz parte do pacote padrão do java: java.lang...

Sendo assim é necessário fazer a importação de seu pacote, desta forma:

import java.util.ArrayList;

Este comando importa a classe ArrayList que se encontra no pacote java.util. Neste pacote existem outras classes, Como Iterator que pretendo demonstrar seu uso em futuros artigos.

Existe também a possibilidade de importar todo o conteúdo do pacote, porém isso deixa sua aplicação mais pesada:

import java.util.*;

esse comando importa todo o conteúdo do pacote.

Vejamos abaixo uma classe e um trecho de código, para executar:

//Aqui importo o pacote para dentro de minha classe
import java.util.ArrayList;

public class MinhaLista {
    private ArrayList lista;

    public MinhaLista(){
        //Instancio o objeto ArrayList
        lista = new ArrayList();
    }

    public void addItem(String valor){
        //O método add() adiciona um valor ao array, detalhe:
        //isso aumenta o seu tamanho dinamicamente
        lista.add(valor);
    }

    public void removerItem(int indice){
        //Este método remove o objeto que ocupa
        //o indice indicado por parâmetro
        lista.remove(indice);
    }

    public void setItem(int indice, String valor){
        //Este método altera o objeto que o ocupa o índice indicado
        lista.set(indice, valor);
    }

    public String getItem(int indice){
        // O método get() retorna o endereço de memória do objeto
        //que se encontra no índice fornecido por parâmetro
        //Por este motivo é preciso fazer uso de um casting (conversão de tipo)
        //Isso diz ao ArrayList que você quer o objeto e não seu endereço de memória

        return (String) lista.get(indice);
    }

    public void mostrar(){

        //Este é o loop for. Uma estrutura de controle que repete um comando
        //por um numero determinado de vezes

        for(int i=0; i < lista.size();i++){
            String n = (String) lista.get(i);

            //Este método println() recebe uma String como parâmetro
            //e imprime na tela.
            System.out.println(n);
        }
    }
}

Agora fiz uma outra classe para executar a classe MinhaLista. Abaixo temos o uso do método main() que  executa uma aplicação java.

public class TestaMinhaLista {
    public static void main(String[] args){
        MinhaLista obj = new MinhaLista();

        //Adicionando um item ao índice 0
        obj.addItem("Java");

        //Adicionando um item ao índice 1
        obj.addItem("Brasil");

        //Adicionando um item ao índice 3
        obj.addItem("Texto a ser removido");

        //Adicionando um item ao índice 4
        obj.addItem("Programação");

        obj.removerItem(2);

        //Mostro o conteúdo de minha lista
        obj.mostrar();

        System.exit(0); //Este comando encerra a aplicação
    }
}

Para ver este exemplo em funcionamento. Crie dois arquivos, sendo que o nome do arquivo que você criar deve ter exatamente o mesmo nome da classe, ex:

criei um arquivo no JGrasp com o nome de MinhaLista.java e dentro deste arquivo eu coloco a classe MinhaLista, aproveite pois é só copiar e colar. Em seguida clique no botão com símbolo "+" (na cor verde) e isso compila a sua classe .java e será visível a você que surge um arquivo com o mesmo nome do original, porém com uma estenção .class. Faça o mesmo com o arquivo TestaMinhaLista, compile-o e este em especial, por possuir o método main(), irá executar o programa. No JGrasp, visualizando a classe TestaMinhaLista execute o programa com o botão RUN. Veja o que acontece.

Dúvidas, por favor comente.

Arrays em java

Posted on junho 29, 2010

Posted by Rodrigo Ireno

Deixando de lado ( só um pouco) as classes, vamos agora tratar de um elemento muito útil em qualquer linguagem de programação. O array.

Um array e um elemento que existe em praticamente todas as linguegens de programação, que é capaz de armazenar vários valores dentro dele. Sendo possível armazenar diversos valores dentro dele, tembém é preciso um modo de recuperar este falor, que é atravez de um índice.

Algumas linguagens possuem arrays de tamanho fixo e variável, que é o caso do java. Em outras como php o array tem tamanho sempre variável. Bom sendo assim vamos exemplificar como seria o armazenamento de valores dentro de um array, em java.
No java,  elementos não primitivos são objetos e todos os objetos devem ser inicializados com a palavra chave new. Para utilizar um array de tamanho fixo em java é preciso especificar seu tamanho durante a inicialização, veja:


int[] meuArray = new int[16];

 meuArray[0] = 23;
 meuArray[15] = 40;

Tomando nota do código acima, já é possível ter uma idéia de como funciona. Tenho um array de números inteiros, vamos aos detalhes.

Ao instanciar um array de tamanho fixo, é preciso determinar o número exato de elementos que ele poderá suportar. Neste caso o array suporta 16 números inteiros. Para poder referenciar um valor dentro deste array, eu utilizo a chave ou índice do array. É aquele [indice] abre-colchete :  índice  : fecha colchete. Sendo que a contagem dos índices começa a partir do zero, então o primeiro elemento está no índice 0, e o último elemento está no índice 15.

Veja que eu atribui um valor 40 ao índice 15, portanto meuArray[15] retornará a partir de então o valor 40.

Arrays são muito utilizados em conjunto com loops, estruturas de controle que repetem determinado comando. veja um exemplo:


//    Veja um exemplo com o loop for

int[] meuArray = new int[3];

meuArray[0] = 50;
meuArray[1] = 25;
meuArray[2] = 48;

// ou esqueça o feito anterior e faça assim..

int[] meuArray = {50, 25, 48};

// O resultado é o mesmo

for(int i=0; i < meuArray.length;i++){

 System.out.println(meuArray[i]);

}

//    O loop acima itera por todo o array e imprime na tela todo o seu conteudo.

Bom este é o exemplo de array de tamanho fixo, porém o java possui um array de tamanho variável, ou seja, você não precisa determinar um tamanho específico para ele. E é usado justamente quando não se tem certeza do que vem por aí para preencher o array.

Apresento, o ArrayList do  pacote java.util.ArrayList. Como ele faz parte de um pacote não incluso por padrão, ele deve ser importado com o comando import.

Mostrarei um exemplo completo no próximo artigo. desta vez com classes inteiras.

até.