O uso do List está correto? [Resolvido]

8 respostas
KaosBr

Bom dia,

Declarei um list, da seguinte forma:

private List<String> atributos;

Depois, dentro do contrutor, trabalhei da seguinte forma:

this.atributos.add(0, "registro");

Assim por diante, seguindo a mesma, estrutura. Porém olhando outros exemplos, vi casos, onde a declaração, tem como adicional: FastList, ArrayList…

Isso me levou a duvidar, de ter feito o uso adequado, do List. Mesmo tendo concluido o que esperava, sem ter, qualquer erro apontado.

1 - Tabalhei de forma correta?

2 - Havia como usar FastList ou ArrayList, da forma que executei, essa codificação?

[]s

8 Respostas

renanreismartins

voce declarou um tipo List. List é uma interface, para instaciar vc ira precisar de uma implementação como ArrayList ou LinkedList. Entao para adicionar elementos na lista basta chamar o metodo add:

List<String> lista = new ArrayList<String>();
lista.add("KaosBr");

aqui tem uma referencia bem legal sobre Collections:

http://javafree.uol.com.br/artigo/847654/Tutorial-Collections-Framework.html

abrassss

maior_abandonado

Nunca tinha nem ouvido falar dessa classe FastList (dei uma olhada na documentação do java 6 por curiosidade e também não a encontrei).

bem…indo direto ao assunto, no construtor você tem que iniciar os seus atributos, você instanciou o seu List no construtor? isso é o básicode que você tem que fazer para iniciar o atributo, o que vier além disso depende da sua lógica da execução dos objetos dessa classe, por exemplo, você disse que iniciou no construtor o seu atributo com uma string “registro”, isso esta correto se você necessitar que seus objetos comecem com um atributo assim na lista, automaticamente em qualquer objeto existente.

obs, o método add de List não é assim como no exemplo que você deu, o método add que recebe dois atributos dessa forma é o de Map.

aajjbb
this.atributos.add(0, "registro");

posso estar falando besteira ,mas, desse jeito, parece um map, nao uma list. se for esse o objetivo, instancie um hashmap por exemplo

renamed

Existe o método add na iterface List. Você pode usá-lo para especificar o índice que você deseja inserir o elemento na lista. Documentação aqui

vitimnunes
List<String> nomes new ArrayList<String>();
nomes.add( "nome" );

pra mim é a melhor maneira de trabalhar com listas simples

evaristo.blog

List é interface, para instanciar tem de definir o tipo de Lista.

Abraço

KaosBr

Boa tarde,

Estou lendo, os links, que foram passados topico a topico…

Do que li e já consegui conferir até aqui, listo abaixo:

Quanto ao FastList, maior_abandonado, esse é o trecho:

import javolution.util.FastList;
private List<File> _armorFiles = new FastList<File>();

Re-vendo o código com um pouco mais de cuidado, encontrei o import, no caso realmente não faz parte dos pacotes padrões do java. Obrigado não havia percebido antes :slight_smile:

Referente ao List, evaristo.blog, a definição que tenho de interface é:

Um conjunto de metodos, atributos. Que ao ser implementado, obriga a classe, que implementou: A ter todos esses “componentes”, como se fosse um contrato de negócios.
Partindo desse principio entendi que: List, armazena os componentes a serem seguidos, e que no caso: o ArrayList é uma classe que implementa a interface(List), no caso ela sim é a classe concreta.

Vou dar uma olhada também em “maps”, ainda não sei o que é e como se usa, vou aproveitar e dar uma pesquisada agora.

Uma outra forma que conheço seria, criar atributos estáticos:

private final String A;
private final String B;

E serem passados para outras classes como parametros. Mas não me pareceu, o procedimento correto.

[]s

KaosBr

Bom dia,

O uso foi inadequado realmente, deveria ter usado um map. Obrigado :slight_smile:

[]s

Criado 12 de julho de 2010
Ultima resposta 12 de jul. de 2010
Respostas 8
Participantes 7