Saltar para: Post [1], Comentários [2], Pesquisa e Arquivos [3]



O ArrayList, que faz parte do Java Collections Framework (JCF), é uma função bastante útil que nos permite criar Arrays dinâmicos, e ainda oferece-nos muitos métodos bastante úteis para manipular o conteúdo do mesmo.

Com este artigo, irei demonstrar como se cria um ArrayList para guardar Strings, neste exemplo, iremos guardar o nome de professores.

Passemos à acção:

Primeiro, temos de importar o pacote que contém as ArrayLists:

import java.util.*;

Se desejar, poderá também importar o seguinte pacote:

import static java.lang.System.out;

Desta forma, irá evitar estar sempre a escrever o palavrão "System.out.println", bastando apenas escrever out.println , por exemplo.

Agora, dentro da classe, iremos declarar a ArrayList:

//Declaração da ArrayList
ArrayList<String> professores = new ArrayList<String>();

Aí está, uma ArrayList do tipo String com o nome professores, de tamanho infinito (podiamos limitar o tamanho escrevendo entre os () o número máximo de registos que a ArrayList pode conter no máximo).

Agora, vamos criar um método que adiciona 3 registos:

public void adicionaProfs()
{
professores.add("Jorge");
professores.add("Paulo");
professores.add("Silvio");
}


Como pode ver, é bastante simples adicionar um elemento à ArrayList, bastando para isso usar o método add().

Mais exemplos de operações numa arrayList:


  • Adicionar um novo professor com nome a ser introduzido pelo utilizador:


public void criarNovoProf(String nome)
{
professores.add(nome);
out.println ("Foi adicionado um professor com o nome "+nome);
}



  • Listar o nome de todos os professores:

  • public void listarProfessores()
    {
    out.println("Lista de Professores");
    for (String nome : professores)
    out.println(nome);
    out.println("========================================");
    }



  • Escrever no ecrã, o número total de registos:


public void tamanhoDaLista()
{
int a = professores.size();
out.println("A lista tem "+a+" elementos");
out.println("==========================");
}



  • Verifica, se um nome introduzido pelo utilizador, existe na ArrayList:

  • public void existe(String nome)
    {
    int i=0;
    for (String profs : professores)
    {
    if (profs.contains(nome)==true)
    {
    i++;
    }
    }
    if (i==0)
    out.println("Não Existe");
    if (i>0)
    out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);
    out.println("=================================================");
    }



  • Apaga todos os registos da ArrayList


public void apagarTudo()
{
professores.clear();
out.println("Todos os registos foram apagados");
}



  • Apaga um elemento cujo nome é introduzido pelo utilizador

  • public void apagaElemento(String nome)
    {
    professores.remove(nome);
    }



  • Verifica se a ArrayList está vazia:

  • public void verificarVazio()
    {
    if (professores.isEmpty()==true)
    out.println("Está Vazio");
    else if (professores.isEmpty()==false)
    out.println("Não está vazio");
    }


    Pode encontrar muitos mais métodos para usar nas ArrayLists neste site:

    http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html

    Se quiser o código pronto a testar no Bluej, está aqui disponivel para copy paste:

    /**
    * Programa que usa uma ArrayList para guardar os nomes
    * dos professores.
    * Permite a utilização de vários métodos nessa
    * ArrayList.
    *
    * @author Fábio Domingos
    * @version 1.0
    */
    import java.util.*;
    import static java.lang.System.out; 


    public class List
    {
    //Declaração da ArrayList
    ArrayList<String> professores = new ArrayList<String>();
    //Adiciona 3 professores à lista
    public void adicionaProfs()
    {
    professores.add("Jorge");
    professores.add("Paulo");
    professores.add("Silvio");
    out.println("Foram adicionados automaticamente 3 professores");
    out.println("==============================================");
    }
    //Adiciona à lista um professor com nome definido pelo utilizador
    public void criarNovoProf(String nome)
    {
    professores.add(nome);
    out.println ("Foi adicionado um professor com o nome "+nome);
    out.println ("===========================================");
    }
    public void listarProfessores()
    {
    out.println("Lista de Professores");
    for (String nome : professores)
    out.println(nome);
    out.println("========================================");
    }
    public void tamanhoDaLista()
    {
    int a = professores.size();
    out.println("A lista tem "+a+" elementos");
    out.println("==========================");
    }
    public void existe(String nome)
    {
    int i=0;
    for (String profs : professores)
    {
    if (profs.contains(nome)==true)
    {
    i++;
    }
    }
    if (i==0)
    out.println("Não Existe");
    if (i>0)
    out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);
    out.println("=================================================");
    }
    public void apagarTudo()
    {
    professores.clear();
    out.println("Todos os registos foram apagados");
    }
    public void apagaElemento(String nome)
    {
    professores.remove(nome);
    }
    public void verificarVazio()
    {
    if (professores.isEmpty()==true)
    out.println("Está Vazio");
    else if (professores.isEmpty()==false)
    out.println("Não está vazio");
    }
    }


Bom, espero que tenham gostado, dúvidas e questões nos comentários. Obrigado.

Autoria e outros dados (tags, etc)

publicado às 19:27
editado por Fábio Domingos em 18/8/10 às 02:49


25 comentários

De Fábio Domingos a 18.06.2011 às 22:39

Elaborei este post, quando comecei a aprender o paradigma orientada a objectos, depois de passar durante muito tempo pela linguagem C, foi um processo bastante complicado, e as colecções era para mim quase "algo de outro mundo", principalmente devido ao facto de os materiais que encontrava na internet serem algo complexos e um pouco difíceis de entender para um iniciado como eu era. Por isso, e após ler alguns livros, decidi partilhar esta forma simplificada de ensinar as colecções, é claro que está um pouco incompleto, pois só abrange as strings, fiquei de escrever um artigo com objectos, que está para breve (talvez para o próximo mês, quando estiver livre dos exames), no entanto serve, ajudou muita gente, e é isso que interessa para o âmbito deste artigo, entendendo as bases, o avançado vem depois.
Sim, sei o que é uma variável booleana, é uma variável que pode ter os valores true (verdadeiro) ou false (falso), utilizei pelo menos uma no artigo.

De qualquer forma, obrigado pela crítica, no entanto devias ter sido um pouco mais construtivo, e em vez de dizeres que está fraco, poderias ter dado algumas sugestões de como poderei melhorar os meus próximos artigos.

Comentar post



Mais sobre mim


Pesquisar

Pesquisar no Blog

Arquivo

  1. 2013
  2. J
  3. F
  4. M
  5. A
  6. M
  7. J
  8. J
  9. A
  10. S
  11. O
  12. N
  13. D
  14. 2012
  15. J
  16. F
  17. M
  18. A
  19. M
  20. J
  21. J
  22. A
  23. S
  24. O
  25. N
  26. D
  27. 2011
  28. J
  29. F
  30. M
  31. A
  32. M
  33. J
  34. J
  35. A
  36. S
  37. O
  38. N
  39. D
  40. 2010
  41. J
  42. F
  43. M
  44. A
  45. M
  46. J
  47. J
  48. A
  49. S
  50. O
  51. N
  52. D
  53. 2009
  54. J
  55. F
  56. M
  57. A
  58. M
  59. J
  60. J
  61. A
  62. S
  63. O
  64. N
  65. D
  66. 2008
  67. J
  68. F
  69. M
  70. A
  71. M
  72. J
  73. J
  74. A
  75. S
  76. O
  77. N
  78. D
  79. 2007
  80. J
  81. F
  82. M
  83. A
  84. M
  85. J
  86. J
  87. A
  88. S
  89. O
  90. N
  91. D