SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Fundamentos da Linguagem Java



      Coleções da API do Java
             e Arrays



           Ludimila Monjardim Casagrande
                       2012
Arrays em Java

     Um array em Java é uma coleção ordenada de
         referências para objetos ou de valores de um
         tipo primitivo ou de outros arrays.
     Arrays em Java são homogêneos, isto é, exceto
         pelas regras de polimorfismo, todos os
         elementos de um array devem ser do mesmo
         tipo.
     Sendo assim, quando o array é criado, é
         especificado o tipo dos elementos que ele irá
         conter.


Coleções e Arrays       ©2012 Ludimila Monjardim Casagrande   2
Arrays em Java

     Para criar e usar um array são necessários
         três passos:

           Declaração;

           Construção;

           Inicialização.




Coleções e Arrays            ©2012 Ludimila Monjardim Casagrande   3
Declaração de um Array

     A sintaxe para a declaração de um array em
         Java é:
           <tipo> <variável>[ ];            ou
           <tipo>[ ] <variável>;
     Exemplo:
           int x[ ];   ou
           int[ ] x;
     Na declaração não é especificado o tamanho do
         array.

Coleções e Arrays            ©2012 Ludimila Monjardim Casagrande   4
Criação de um Array
     O tamanho do array só é especificado na sua
         criação, conforme o exemplo abaixo:
           x = new int[10]; //obrigatório definir o tamanho
     Somente nesse ponto é que o array x foi criado com
         10 posições, indexadas de 0 a 9.
     Também é permitido declarar e construir o array na
         mesma linha, por exemplo:
           int x[ ] = new int[10];
           String[ ] nomes = new String[5];


Coleções e Arrays          ©2012 Ludimila Monjardim Casagrande   5
Criação e Inicialização de um Array

     Também é possível construir um array já inicializando-
         o com alguns valores.

     Veja os exemplos:
           int[ ] x = {1, 2, 3, 4, 5};
           int[ ] x = new int[ ]{1, 2, 3, 4, 5};

     Nesses casos, o vetor será automaticamente criado
         com cinco posições e já iniciado com os valores entre
         { e }.


Coleções e Arrays            ©2012 Ludimila Monjardim Casagrande   6
Exemplo de Uso de um Array
         public class Array {
           public static void main(String[] args){
             int[ ] x = new int[10];
             x[9] = 8;
             //x[10] = 9; //ArrayIndexOutOfBoundsException!!!
             System.out.println("O tamanho do array é: " + x.length);
             //Laço que insere valores no Array
             for(int i = 0; i < x.length; i++){
                 x[i] = i * 2;
             }
             for(int i = 0; i < x.length; i++){
                 System.out.println("O argumento " + i + " é: " + x[i]);
             }
           }
         }
Coleções e Arrays            ©2012 Ludimila Monjardim Casagrande           7
Coleções em Java
     Estruturas de dados são mecanismos para manipular
         coleções de elementos em um programa.
     O pacote java.util oferece algumas classes definidas na
         API do Java que implementam funcionalidades
         associadas a estruturas de dados.
     Essas classes são conhecidas como “collections” ou
         “containers”.
     Algumas das classes que representam coleções
         providas pela API do Java são:
           Vector, ArrayList, LinkedList
           HashSet, TreeSet, entre outras

Coleções e Arrays            ©2012 Ludimila Monjardim Casagrande   8
Hierarquia de Coleções do Java

                                           Collection
                                                           Interface que representa
                                                           uma coleção genérica




                      List                                            Set
                                                                                Sub-interfaces de
Diferentes                                                                      Collection
implementações
da interface List


          Vector    ArrayList     LinkedList                HashSet         TreeSet




Coleções e Arrays               ©2012 Ludimila Monjardim Casagrande                            9
Coleções em Java

     A interface Collection é a raiz da hierarquia de
         coleções da API do Java.

     Algumas coleções permitem a existência de objetos
         duplicados, outras não.

     Algumas coleções são ordenadas e outras não.
     Essas são algumas das características que
         classificam as coleções em grupos mais
         específicos, tais como, Set e List.


Coleções e Arrays        ©2012 Ludimila Monjardim Casagrande   10
Listas e Conjuntos

     List e Set são duas das principais sub-interfaces
         da interface Collection.

     List é a interface que representa a especificação
         de coleções do tipo lista que, por definição,
         permitem objetos duplicados e são ordenadas.

     Set, por sua vez, representa os conjuntos que,
         por definição, não permitem objetos duplicados
         e não são necessariamente ordenados.


Coleções e Arrays        ©2012 Ludimila Monjardim Casagrande   11
Interface Collection

     Uma Collection não obedece a uma ordem
         especial e não rejeita objetos duplicados.
     A interface Collection define métodos que
         permitem à adição e remoção de elementos, a
         contagem desses elementos e a verificação de
         existência ou não de um determinado elemento
         na coleção, por exemplo.
     Uma coleção simples não impõe restrições
         quanto ao tipo dos objetos por ela
         armazenados.

Coleções e Arrays       ©2012 Ludimila Monjardim Casagrande   12
Interface Collection

      Principais métodos definidos pela interface Collection:
             boolean contains(Object o);
             boolean containsAll(Collection c);
             boolean add(Object o);
             boolean addAll(Collection c);
             boolean remove(Object o);
             boolean removeAll(Collection c);
             boolean isEmpty();
             int size();
             Object[] toArray();
      Observe que os métodos não são relacionados com posição.

Coleções e Arrays               ©2012 Ludimila Monjardim Casagrande   13
Interface List

      Uma classe que implementa List representa uma
          coleção ordenada que não rejeita duplicatas.
      Em algumas listas, a ordem pode ser a ordem na qual
          os objetos foram adicionados à coleção, em outras, os
          elementos possuem uma “ordem natural” que deve ser
          respeitada.
      A interface List define métodos relacionados à posição
          do elemento na coleção, como:
               int indexOf(Object o);
               Object get(int index);
               void add(int index, Object element);
               Object remove(int index);

Coleções e Arrays                ©2012 Ludimila Monjardim Casagrande   14
Interface Set

     As classes que implementam a interface Set
         devem definir os métodos de adição de
         elementos à coleção de modo a não permitir a
         inserção de duplicatas.
     Alguns conjuntos consideram o valor null como
         um elemento válido, no entanto, só pode existir
         uma ocorrência de null em toda a coleção.




Coleções e Arrays       ©2012 Ludimila Monjardim Casagrande   15
Classe ArrayList

      Para entendermos melhor o uso de uma coleção,
          vamos estudar a classe ArrayList que corresponde
          a uma das implementações da interface List.
      ArrayList é uma classe do Java (package java.util)
          usada para armazenar objetos de quaisquer tipos.
      Um objeto da classe ArrayList pode ser criado com
          um tamanho inicial e, se esse tamanho se tornar
          insuficiente, automaticamente o “array” será
          aumentado de modo transparente para o usuário da
          classe.

Coleções e Arrays        ©2012 Ludimila Monjardim Casagrande   16
Criação de um ArrayList

     O exemplo cria um objeto da classe ArrayList,
         para armazenar, inicialmente, 15 elementos.
     Se nenhum valor é passado no construtor, um
         objeto com capacidade para 10 elementos é
         criado.
     Exemplo:
           ArrayList list = new ArrayList(15);




Coleções e Arrays         ©2012 Ludimila Monjardim Casagrande   17
Adição de Elementos ao ArrayList

     Para se armazenar uma referência a um objeto
         em um ArrayList, a classe fornece o método
         add(Object o).
     Exemplo:
          1.Aluno a = new Aluno(“ana”, “123”, 1);
          2.list.add(a);
     O método add(Object o) adiciona o objeto
         recebido no final do“array”.


Coleções e Arrays          ©2012 Ludimila Monjardim Casagrande   18
Exemplo
 import java.util.*;

 public class CadAlunos {

      private static ArrayList alunos = new ArrayList(1);

      public static void main(String[ ] args){               O ArrayList aumenta de tamanho
        alunos.add(“Alessandro");                            automaticamente.
        alunos.add(“Eliane");
        alunos.add(“Miriam");

           Aluno a = new Aluno(“Carlos", "123", 1);
           alunos.add(a);
      }                                              O ArrayList permite a inserção de
 }                                                   elementos de diferentes tipos.


Coleções e Arrays              ©2012 Ludimila Monjardim Casagrande                        19
Listas Homogêneas

     A partir do Java 5.0, podemos usar o recurso
         chamado Generics para restringir as listas a um
         determinado tipo de objetos (e não qualquer
         Object):
           List<Aluno> alunos = new ArrayList<Aluno>();
           alunos.add(a1);
           alunos.add(a2);
           alunos.add(“Pedro”); // isso geraria erro de compilação




Coleções e Arrays             ©2012 Ludimila Monjardim Casagrande     20
Listas Homogêneas

     O uso de Generics também elimina a
         necessidade de casting, já que, seguramente,
         todos os objetos inseridos na lista serão do tipo
         Aluno:
          for(int i = 0; i < alunos.size(); i++) {
              Aluno a = alunos.get(i); // sem casting!
              System.out.println(a.getNome());
          }


Coleções e Arrays           ©2012 Ludimila Monjardim Casagrande   21
Adição de Elementos ao ArrayList

      Existe ainda uma versão do método add que
          também recebe um índice.
      Exemplo:
             list.add(0, a);
      Nesse caso o objeto será armazenado na
          posição 0.
      Se a posição indicada não existir, o método gera
          uma exceção IndexOutOfBoundsException.


Coleções e Arrays               ©2012 Ludimila Monjardim Casagrande   22
Recuperação de um Elemento

      Para recuperar um objeto de um ArrayList usamos
          o método get(int index).
      Exemplo:
            1. int i = 2;
            2. Aluno a = (Aluno)list.get(i); //casting necessário
      O método get retorna o objeto armazenado na
          posição indicada.
      Se o índice especificado não existir, o método
          gera uma exceção IndexOutOfBoundsException.
Coleções e Arrays           ©2012 Ludimila Monjardim Casagrande     23
Exemplo
   import java.util.*;
   public class CadAlunos {
        private static ArrayList alunos = new ArrayList(10);
        public static void main(String[] args){
           Aluno a = new Aluno("André", "andre", "123", 1);
           alunos.add(a);
           a = new Aluno("Carla", "carla", "456", 2);
           alunos.add(a);
           a = new Aluno("Cristiane", "cristiane", "789", 3);
           alunos.add(2, a);
             a = (Aluno)alunos.get(1);
             Iterator it = alunos.iterator();
             while (it.hasNext()) {
                 a = (Aluno)it.next();
                 System.out.println(a);
             }
        }
   }
Coleções e Arrays                    ©2012 Ludimila Monjardim Casagrande   24
Referências

     Java: Como programar
         Autores: H. M. Deitel e P. J. Deitel
         Editora: Pearson – 6ª Edição

     Capítulo 16 – Collections framework
         Apostila Caelum
         http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/

     Complete Java 2 Certification
         Study Guide
         Sybex

Coleções e Arrays             ©2012 Ludimila Monjardim Casagrande        25

Mais conteúdo relacionado

Mais procurados (19)

Aula05
Aula05Aula05
Aula05
 
Java 14
Java 14Java 14
Java 14
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
Java collections-basic
Java collections-basicJava collections-basic
Java collections-basic
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Programação orientada a objetos - IV
Programação orientada a objetos - IVProgramação orientada a objetos - IV
Programação orientada a objetos - IV
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Arrays em java
Arrays em javaArrays em java
Arrays em java
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 
Java 07
Java 07Java 07
Java 07
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Grupo2
Grupo2Grupo2
Grupo2
 
Java6
Java6Java6
Java6
 
Programando em python classes
Programando em python   classesProgramando em python   classes
Programando em python classes
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 

Semelhante a Java Coleções Arrays

Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Natanael Fonseca
 
Aula 02 - JavaScript: Arrays
Aula 02 - JavaScript: ArraysAula 02 - JavaScript: Arrays
Aula 02 - JavaScript: ArraysJessyka Lage
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Eduardo Carvalho
 
Collection Java (2/2)
Collection Java (2/2)Collection Java (2/2)
Collection Java (2/2)rdgse
 
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsDenis L Presciliano
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasLeonardo Melo Santos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arraysArthur Emanuel
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Java basico modulo_03
Java basico modulo_03Java basico modulo_03
Java basico modulo_03wammendes
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentesHelder da Rocha
 

Semelhante a Java Coleções Arrays (20)

Colecções do c#
Colecções do c#Colecções do c#
Colecções do c#
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
 
Aula 02 - JavaScript: Arrays
Aula 02 - JavaScript: ArraysAula 02 - JavaScript: Arrays
Aula 02 - JavaScript: Arrays
 
Java8
Java8Java8
Java8
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections
 
Collection Java (2/2)
Collection Java (2/2)Collection Java (2/2)
Collection Java (2/2)
 
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
 
8 collections-i
8 collections-i8 collections-i
8 collections-i
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Aula 2 2
Aula 2 2 Aula 2 2
Aula 2 2
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Slides collections
Slides collectionsSlides collections
Slides collections
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Java basico modulo_03
Java basico modulo_03Java basico modulo_03
Java basico modulo_03
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentes
 

Mais de Ludimila Monjardim Casagrande

POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 

Mais de Ludimila Monjardim Casagrande (20)

Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de ArgumentosPOO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 

Java Coleções Arrays

  • 1. Fundamentos da Linguagem Java Coleções da API do Java e Arrays Ludimila Monjardim Casagrande 2012
  • 2. Arrays em Java  Um array em Java é uma coleção ordenada de referências para objetos ou de valores de um tipo primitivo ou de outros arrays.  Arrays em Java são homogêneos, isto é, exceto pelas regras de polimorfismo, todos os elementos de um array devem ser do mesmo tipo.  Sendo assim, quando o array é criado, é especificado o tipo dos elementos que ele irá conter. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 2
  • 3. Arrays em Java  Para criar e usar um array são necessários três passos:  Declaração;  Construção;  Inicialização. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 3
  • 4. Declaração de um Array  A sintaxe para a declaração de um array em Java é:  <tipo> <variável>[ ]; ou  <tipo>[ ] <variável>;  Exemplo:  int x[ ]; ou  int[ ] x;  Na declaração não é especificado o tamanho do array. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 4
  • 5. Criação de um Array  O tamanho do array só é especificado na sua criação, conforme o exemplo abaixo:  x = new int[10]; //obrigatório definir o tamanho  Somente nesse ponto é que o array x foi criado com 10 posições, indexadas de 0 a 9.  Também é permitido declarar e construir o array na mesma linha, por exemplo:  int x[ ] = new int[10];  String[ ] nomes = new String[5]; Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 5
  • 6. Criação e Inicialização de um Array  Também é possível construir um array já inicializando- o com alguns valores.  Veja os exemplos:  int[ ] x = {1, 2, 3, 4, 5};  int[ ] x = new int[ ]{1, 2, 3, 4, 5};  Nesses casos, o vetor será automaticamente criado com cinco posições e já iniciado com os valores entre { e }. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 6
  • 7. Exemplo de Uso de um Array public class Array { public static void main(String[] args){ int[ ] x = new int[10]; x[9] = 8; //x[10] = 9; //ArrayIndexOutOfBoundsException!!! System.out.println("O tamanho do array é: " + x.length); //Laço que insere valores no Array for(int i = 0; i < x.length; i++){ x[i] = i * 2; } for(int i = 0; i < x.length; i++){ System.out.println("O argumento " + i + " é: " + x[i]); } } } Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 7
  • 8. Coleções em Java  Estruturas de dados são mecanismos para manipular coleções de elementos em um programa.  O pacote java.util oferece algumas classes definidas na API do Java que implementam funcionalidades associadas a estruturas de dados.  Essas classes são conhecidas como “collections” ou “containers”.  Algumas das classes que representam coleções providas pela API do Java são:  Vector, ArrayList, LinkedList  HashSet, TreeSet, entre outras Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 8
  • 9. Hierarquia de Coleções do Java Collection Interface que representa uma coleção genérica List Set Sub-interfaces de Diferentes Collection implementações da interface List Vector ArrayList LinkedList HashSet TreeSet Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 9
  • 10. Coleções em Java  A interface Collection é a raiz da hierarquia de coleções da API do Java.  Algumas coleções permitem a existência de objetos duplicados, outras não.  Algumas coleções são ordenadas e outras não.  Essas são algumas das características que classificam as coleções em grupos mais específicos, tais como, Set e List. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 10
  • 11. Listas e Conjuntos  List e Set são duas das principais sub-interfaces da interface Collection.  List é a interface que representa a especificação de coleções do tipo lista que, por definição, permitem objetos duplicados e são ordenadas.  Set, por sua vez, representa os conjuntos que, por definição, não permitem objetos duplicados e não são necessariamente ordenados. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 11
  • 12. Interface Collection  Uma Collection não obedece a uma ordem especial e não rejeita objetos duplicados.  A interface Collection define métodos que permitem à adição e remoção de elementos, a contagem desses elementos e a verificação de existência ou não de um determinado elemento na coleção, por exemplo.  Uma coleção simples não impõe restrições quanto ao tipo dos objetos por ela armazenados. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 12
  • 13. Interface Collection  Principais métodos definidos pela interface Collection:  boolean contains(Object o);  boolean containsAll(Collection c);  boolean add(Object o);  boolean addAll(Collection c);  boolean remove(Object o);  boolean removeAll(Collection c);  boolean isEmpty();  int size();  Object[] toArray();  Observe que os métodos não são relacionados com posição. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 13
  • 14. Interface List  Uma classe que implementa List representa uma coleção ordenada que não rejeita duplicatas.  Em algumas listas, a ordem pode ser a ordem na qual os objetos foram adicionados à coleção, em outras, os elementos possuem uma “ordem natural” que deve ser respeitada.  A interface List define métodos relacionados à posição do elemento na coleção, como:  int indexOf(Object o);  Object get(int index);  void add(int index, Object element);  Object remove(int index); Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 14
  • 15. Interface Set  As classes que implementam a interface Set devem definir os métodos de adição de elementos à coleção de modo a não permitir a inserção de duplicatas.  Alguns conjuntos consideram o valor null como um elemento válido, no entanto, só pode existir uma ocorrência de null em toda a coleção. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 15
  • 16. Classe ArrayList  Para entendermos melhor o uso de uma coleção, vamos estudar a classe ArrayList que corresponde a uma das implementações da interface List.  ArrayList é uma classe do Java (package java.util) usada para armazenar objetos de quaisquer tipos.  Um objeto da classe ArrayList pode ser criado com um tamanho inicial e, se esse tamanho se tornar insuficiente, automaticamente o “array” será aumentado de modo transparente para o usuário da classe. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 16
  • 17. Criação de um ArrayList  O exemplo cria um objeto da classe ArrayList, para armazenar, inicialmente, 15 elementos.  Se nenhum valor é passado no construtor, um objeto com capacidade para 10 elementos é criado.  Exemplo:  ArrayList list = new ArrayList(15); Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 17
  • 18. Adição de Elementos ao ArrayList  Para se armazenar uma referência a um objeto em um ArrayList, a classe fornece o método add(Object o).  Exemplo: 1.Aluno a = new Aluno(“ana”, “123”, 1); 2.list.add(a);  O método add(Object o) adiciona o objeto recebido no final do“array”. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 18
  • 19. Exemplo import java.util.*; public class CadAlunos { private static ArrayList alunos = new ArrayList(1); public static void main(String[ ] args){ O ArrayList aumenta de tamanho alunos.add(“Alessandro"); automaticamente. alunos.add(“Eliane"); alunos.add(“Miriam"); Aluno a = new Aluno(“Carlos", "123", 1); alunos.add(a); } O ArrayList permite a inserção de } elementos de diferentes tipos. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 19
  • 20. Listas Homogêneas  A partir do Java 5.0, podemos usar o recurso chamado Generics para restringir as listas a um determinado tipo de objetos (e não qualquer Object):  List<Aluno> alunos = new ArrayList<Aluno>();  alunos.add(a1);  alunos.add(a2);  alunos.add(“Pedro”); // isso geraria erro de compilação Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 20
  • 21. Listas Homogêneas  O uso de Generics também elimina a necessidade de casting, já que, seguramente, todos os objetos inseridos na lista serão do tipo Aluno: for(int i = 0; i < alunos.size(); i++) { Aluno a = alunos.get(i); // sem casting! System.out.println(a.getNome()); } Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 21
  • 22. Adição de Elementos ao ArrayList  Existe ainda uma versão do método add que também recebe um índice.  Exemplo:  list.add(0, a);  Nesse caso o objeto será armazenado na posição 0.  Se a posição indicada não existir, o método gera uma exceção IndexOutOfBoundsException. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 22
  • 23. Recuperação de um Elemento  Para recuperar um objeto de um ArrayList usamos o método get(int index).  Exemplo: 1. int i = 2; 2. Aluno a = (Aluno)list.get(i); //casting necessário  O método get retorna o objeto armazenado na posição indicada.  Se o índice especificado não existir, o método gera uma exceção IndexOutOfBoundsException. Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 23
  • 24. Exemplo import java.util.*; public class CadAlunos { private static ArrayList alunos = new ArrayList(10); public static void main(String[] args){ Aluno a = new Aluno("André", "andre", "123", 1); alunos.add(a); a = new Aluno("Carla", "carla", "456", 2); alunos.add(a); a = new Aluno("Cristiane", "cristiane", "789", 3); alunos.add(2, a); a = (Aluno)alunos.get(1); Iterator it = alunos.iterator(); while (it.hasNext()) { a = (Aluno)it.next(); System.out.println(a); } } } Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 24
  • 25. Referências  Java: Como programar Autores: H. M. Deitel e P. J. Deitel Editora: Pearson – 6ª Edição  Capítulo 16 – Collections framework Apostila Caelum http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/  Complete Java 2 Certification Study Guide Sybex Coleções e Arrays ©2012 Ludimila Monjardim Casagrande 25