[RESOLVIDO]Preencher ArrayList logo ao crialo

6 respostas
L

Queria saber qual o método que ao se criar uma ArrayList você já determine alguns elementos que vão estar nela
Por exemplo, crio uma ArrayList e já quero que dentro dela esteja as strings “AAA”, “BBB”

6 Respostas

fabiocsilva
List<String> myList = new ArrayList<String>(){
            {
             add("AAA");
             add("BBB");
            }

};
L

Isso mesmo, vlw ae fabio =D

ViniGodoy

Outra possibilidade é:

List&lt;String&gt; lista = Arrays.asList("AAA", "BBB");
daveiga

Eu costumava fazer assim:

ArrayList<String> list = new ArrayList(new String[]{"AAA", "BBB"}); // edit: tinha esquecido os []

Hoje em dia eu sou mais feliz, uso Groovy ou a Lib Guava http://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained.

ImmutableList<String> of = ImmutableList.of("a", "b", "c", "d");
sergiotaborda
ViniGodoy:
Outra possibilidade é:
List&lt;String&gt; lista = Arrays.asList("AAA", "BBB");

Esta opção é a melhor. Cria menos objetos, não usa arrays e de quebra o list é imutável.

É a forma mais eficiente possivel na linguagem atual.

Usar classes anônimas,

List&lt;String&gt; myList = new ArrayList&lt;String&gt;(){  
                {  
                 add("AAA");  
                 add("BBB");  
                }  
      
    };

embora possivel, é muita viagem pois é equivalente a

ArrayList&lt;String&gt; myList = new ArrayList&lt;String&gt;();
            
 myList.add("AAA");  
myList.add("BBB");

Acho que o objetivo do lucas é a opção mais perto possivel de

List&lt;String&gt; lista = ["AAA", "BBB"];

que já é válida em algumas linguagens.

fabiocsilva
sergiotaborda:
ViniGodoy:
Outra possibilidade é:
List&lt;String&gt; lista = Arrays.asList("AAA", "BBB");

Esta opção é a melhor. Cria menos objetos, não usa arrays e de quebra o list é imutável.

É a forma mais eficiente possivel na linguagem atual.

Usar classes anônimas,

List&lt;String&gt; myList = new ArrayList&lt;String&gt;(){  
                {  
                 add("AAA");  
                 add("BBB");  
                }  
      
    };

embora possivel, é muita viagem pois é equivalente a

ArrayList&lt;String&gt; myList = new ArrayList&lt;String&gt;();
            
 myList.add("AAA");  
myList.add("BBB");

Acho que o objetivo do lucas é a opção mais perto possivel de

List&lt;String&gt; lista = ["AAA", "BBB"];

que já é válida em algumas linguagens.

A classe interna anônima é exatamente o que ele pediu. Como você mesmo comentou, o método asList retorna uma lista imutável. Se ele quiser adicionar novos itens a exceção UnsupportedOperationException será disparada.

Criado 2 de agosto de 2012
Ultima resposta 2 de ago. de 2012
Respostas 6
Participantes 5