Referência em ArrayList [Resolvido]

5 respostas
J

Olá Pessoal. Estou criando uma aplicação e acho que estou esquecendo alguma coisa.
Quando faço o retorno do banco de dados, desejo colocar a informação em um ArrayList
determinando explicitamente a posição do mesmo:

Desta forma funciona.

List<Blog> list = new ArrayList<Blog>();

            while (rs.next()) {
                int idBlog = rs.getInt(1);
                String titulo = rs.getString(2);
                String descricao = rs.getString(3);

                list.add(new Blog(idBlog, titulo, descricao)); // Adiciona todos Blogs existentes na lista.

Mas se fizer uma referência explicita da posição dentro da Lista ele não funciona, porque?

list.add(idBlog, new Blog(idBlog, titulo, descricao)); // Adiciona todos Blogs existentes na lista.
Grato.

5 Respostas

B

http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html#add(int,%20java.lang.Object)

Porque o primeiro parâmetro é a posição na lista. Se ela estiver vazia, você não poderá fazer isso, será lançada uma IndexOutOfBoundsException. Utilize um Map ao invés disso.

E

Em um ArrayList vc nao precisa saber a posicao , ele faz isto dinamicamente , tipo eu nao preciso saber a quantidade de itens a serem inseridos , por isto nao há necessidade de vc forcar o uso de um índice .

Lembrando em um arrayList , vc pode adicionar tanto tipo primitivos quanto collections, se vc quer adicionar um valor inicial aconselho vc usar uma classe anônima so para criar um unico objeto para ser adicionado da maneira que desejar, ou utilize uma das infinidades de opções de list existentes por exemplo HashMap .

J

Ok. Entendi.
Como no final o objetivo é capturar as informações aleatoriamente numa JSP “Dentro de respectivas Divs”

<div id="blog1Titulo">${blogs["1"].titulo}</div>
         <div id="blog1">
               ${blogs["1"].descricao}
     </div>

Eu dei um jeito que funciona:

list.add(null);

Assim que tiver tempo eu vou procurar melhorar.

Grato.

E

Não Esqueça de editar o Título do para [Resolvido] .
Qualquer duvida estamos ai =)
Bom Estudo .

J

ops! Thanks pelo apoio pessoal.
:slight_smile:

Criado 25 de agosto de 2009
Ultima resposta 25 de ago. de 2009
Respostas 5
Participantes 3