Ler objeto em um arraylist

3 respostas
marcosmhs

Olá jovens,

Eis que trago mais uma dúvida. Eu criei um ArrayList com um "objeto" criado por mim. Eu consegui inserir itens sem problemas mas agora não sei como ler esses itens.

Olha só o que eu fiz:
class Colunas {
    String Campo     = "";
    String Descricao = "";
    String CSSColuna = "";
    String Tamanho   = "";
}

public class ListaDados {

   private ArrayList listaColunas = new ArrayList();
   private Colunas   coluna;
   public  String    Tamanho = "";
   public  String    Posição = "";

   public void NovaColuna(String Campo, String Descricao, String CSSColuna, String Tamanho) {
       coluna           = new Colunas();
       coluna.Campo     = Campo;
       coluna.Descricao = Descricao;
       coluna.CSSColuna = CSSColuna;
       coluna.Tamanho   = Tamanho;
       listaColunas.add(coluna);
   }

   public int TotalColunas () {
       return listaColunas.size();
   }

   public String HTML() {
       String html = "";
       for (int i = 0; i < listaColunas.size(); i++) {
            // BEM AQUI EU GOSTARIA DE LER OS VALORES DAS COLUNAS
            // algo como:
            // Colunas col = listaColunas.get(i);
        }
       return html;
   }
}

Alguém poderia me ajudar?

3 Respostas

ViniGodoy

É do jeito que você fez mesmo.

Só altere a declaração do seu ArrayList para:

private List<Colunas> listaColunas = new ArrayList<Colunas>();

Para que o Java saiba que existem Colunas no seu ArrayList.
Caso contrário, ele irá dizer que é um ArrayList de qualquer “object” e exigirá um cast na hora de ler o dado.

Dá uma olhada aqui, em mais exemplos de uso:
http://www.guj.com.br/posts/list/74068.java#389435

ViniGodoy

Melhor ainda, depois de fazer a alteração na declaração, você pode usar um for each:

String html = ""; for (Colunas col : listaColunas) { //Agora é só usar o objeto col } return html;

Finalmente, se você for concatenar Strings (no caso daquele HTML ali), use a classe StringBuilder:

StringBuilder html = new StringBuilder(""); for (Colunas col : listaColunas) { //Agora é só usar o objeto col //E aqui você usa html.append para concatenar texto. } return html.toString();

marcosmhs

ViniGodoy,

Cara muito obrigado pela dica era exatamente isso, o caso do StringBuilder vai ser uma mão na roda!!!

Criado 1 de novembro de 2010
Ultima resposta 1 de nov. de 2010
Respostas 3
Participantes 2