preencher ArrayList na declaracao

Java

09/04/2009

Caros colegas fiquei com uma duvida, quero declarar e prencher um arraylist, como faço isso? pois tentei de várias formas e não concegui:
private static ArrayList listatipos = new ArrayList().add()
So cadastra um item. Isso não basta pois tenho que cadastrar mais opções:
        listatipos.add(0, "01 -OP");
        listatipos.add(1, "02 -OP");
        listatipos.add(2, "03 -OP");
        listatipos.add(3, "04 -OP");
        listatipos.add(4, "05 -OP);
Rodrigo Steinhorst

Rodrigo Steinhorst

Curtidas 0

Respostas

Carlos Heuberger

Carlos Heuberger

09/04/2009

[quote="homisinho"]Caros colegas fiquei com uma duvida, quero declarar e prencher um arraylist, como faço isso? pois tentei de várias formas e não concegui:
private static ArrayList listatipos = new ArrayList().add()
So cadastra um item. Isso não basta pois tenho que cadastrar mais opções:
        listatipos.add(0, "01 -OP");
        listatipos.add(1, "02 -OP");
        listatipos.add(2, "03 -OP");
        listatipos.add(3, "04 -OP");
        listatipos.add(4, "05 -OP);
Oi, não entendi direito o problema.Não conseguiu porque? Erro? O mais facil seria adicionar os elementos no construtor da classe. Pelo seu exemplo, o problema pode ser que a lista é static (não mencionado na pergunta?), então use um inicializador estático
...
private static ArrayList listatipos = new ArrayList();

static {  
  // executado quando a classe for carregada, 
  // semelhante ao "new ArrayList()" acima
  listatipos.add("01 -OP");
  listatipos.add("02 -OP");
  ...
}
...
outra opcão
...
private static ArrayList listatipos = new ArrayList(
  Arrays.asList("01 -OP", "02 -OP", ...)
  );
...
[]]
GOSTEI 0
Rodrigo Steinhorst

Rodrigo Steinhorst

09/04/2009

Era essa mesmo a minha duvida! Não sabia como inicializar um Arraylist statico... Desde já obrigado.
GOSTEI 0
Everton Barros

Everton Barros

09/04/2009

Melhorando:
//Declare como a Interface List e instancie com a classe ArrayList.
private static List listatipos = new ArrayList();
GOSTEI 0
Carlos Heuberger

Carlos Heuberger

09/04/2009

Melhorando mais um pouco: [img]http://www.javafree.org/forum/images/smiles/icon_cool.gif[/img]
// use generics (tipos generícos)
private static List<String> listatipos = new ArrayList<String>();
[]]
GOSTEI 0
Arthur Fücher

Arthur Fücher

09/04/2009

Pq usar List e instanciar um ArrayList nele?? e não instanciar direto o ArrayList.... estou estudando java, e seria bem interessante saber o pq disso.. []'s
GOSTEI 0
Marcelo Senaga

Marcelo Senaga

09/04/2009

Se você usar List no tipo, você dá liberdade para trocar a classe concreta ArrayList por outra implementação sem afetar o código que usa a variável listatipos. É uma boa prática e deve ser seguida sempre.
GOSTEI 0
Davi Costa

Davi Costa

09/04/2009

É sempre bom programarmos para interfaces.. torna o código mais portável. Veja este link: http://blog.caelum.com.br/como-nao-aprender-orientacao-a-objetos-heranca/ abcs
GOSTEI 0
Davi Costa

Davi Costa

09/04/2009

[quote="davi.costa"]É sempre bom programarmos para interfaces.. torna o código mais portável. Veja este link: http://blog.caelum.com.br/como-nao-aprender-orientacao-a-objetos-heranca/ abcs
válido principalmente para parâmetros e valores retornados por métodos - para variáveis estritamente locais, o impacto não é tão grande assim, mesmo assim é boa prática! E acaba até sendo uma forma de indicar/documentar que estamos interessados apenas na funcionalidade de uma List e não nos preocupamos nos detalhes da implementação.
GOSTEI 0
Davi Costa

Davi Costa

09/04/2009

O post How To Initialize An ArrayList In One Line [http://www.mkyong.com/java/how-to-initialize-an-arraylist-in-one-line/], acho traz a resposta para o seu problema. Abraço,
GOSTEI 0
POSTAR