segunda-feira, 13 de agosto de 2012

Convertendo List para Array e Array para List

 Uma grande dúvida que costuma surgir no programadores iniciantes é como transformar um objeto List, ArrayList para Array e vice versa.
Abaixo mostro como fazer os dois casos, caso tenham dúvidas deixem nos comentários.

//Convertendo Array para List
      
   //Criando um array

        //Uma forma é criar o array, já passando os valores.
         String[] nomes = new String[]{"Maria","José","Ana","João"};
           
        //Outra forma seria primeiro declarar os valores e depois preenchê-los
         String[] animais = new String[4];
         animais[0] = "Gato";
         animais[1] = "Pato";
         animais[2] = "Zebra";

   //Uma forma de converter nosso array de nomes para uma lista
    java.util.List nomesLista = new java.util.ArrayList(); 
             
    for(String s: nomes){
        nomesLista.add(s); 
     }
              
    //Outra forma seria utilizando uma biblioteca existente
           
            //Convertendo dessa primeira forma, o array é associado a lista, ou seja,
            //se mais algum objeto for inserido será inserido na lista e no array simultaneamente
            java.util.List animaisLista = java.util.Arrays.asList(animais);
           
                //Se tentarmos inserir mais um item no nosso array que continha uma posição sobrando,
                //o item será inserido também na lista
                animais[3] = "Leão";
               
                //Se tentarmos inserir na lista ocorrerá um erro quando o sistema tentar inserir simultaneamente no array
                //animaisLista.add("Leão"); //Lança uma exceção java.lang.UnsupportedOperationException
           
            //Outra forma seria criar uma cópia desse array e transformá-lo em lista, para ao alterar um não afetar o outro
            //e consequentemente conseguir continuar manipulando a nova lista criada
            java.util.List animaisListaSegundo = new java.util.ArrayList(java.util.Arrays.asList(animais));
            animaisListaSegundo.add("Onça");
    

//Convertendo List para Array
           
     //Criando uma lista
     java.util.List objetosLista = new java.util.ArrayList();
     objetosLista.add("Copo");
     objetosLista.add("Faca");
       
     //Criando um varíavel array e definindo o tamanho da lista como tamanho do array
     String[] objetosArray = new String[objetosLista.size()];
       
        //Convertendo de lista para array, nesse caso o sistema já cria uma cópia
        //e depois de convertido as alterações em uma não afetam a outra
        objetosArray = objetosLista.toArray(objetosArray);
       
           //Inserindo mais um item na lista, esse item não é inserido no array
           objetosLista.add("Colher");

Nenhum comentário:

Postar um comentário