• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
POO -  23 - Coleções da API do Java
 

POO - 23 - Coleções da API do Java

on

  • 2,541 views

 

Statistics

Views

Total Views
2,541
Views on SlideShare
2,541
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    POO -  23 - Coleções da API do Java POO - 23 - Coleções da API do Java Presentation Transcript

    • 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 outrasColeçõ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 deDiferentes Collectionimplementaçõesda interface List Vector ArrayList LinkedList HashSet TreeSetColeçõ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çãoColeçõ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 SybexColeções e Arrays ©2012 Ludimila Monjardim Casagrande 25