Estruturas de dados do Collections Framework

Tipos de Dados e Exceções em Java

Jim White

Java Instructor

O que é um framework

  • Um framework é um conjunto de tipos reutilizáveis com funcionalidades genéricas
    • Exemplos de tipos: classes e interfaces
    • Melhora a qualidade da aplicação
    • Evita criar tudo do zero
  • Frameworks são entregues em um pacote ou pacotes no Java
  • Frameworks vêm com diretrizes e regras de uso

Frameworks fornecem um conjunto pré-pronto de código com funcionalidades genéricas

1 Foto de Ashkan Forouzani no Unsplash
Tipos de Dados e Exceções em Java

Tipos em Java

Duas categorias de tipos em Java:

  • Tipos primitivos
    • byte, short, int, long, float, double, char, boolean
  • Tipos de referência
    • Classes
    • Interfaces
    • Enums
    • Arrays
    • ...
Tipos de Dados e Exceções em Java

O Collections Framework

  • Collections Framework: conjunto nativo do Java de tipos genéricos de estruturas de dados
    • Um pacote de tipos para armazenar e manipular um grupo de objetos
  • Definido no pacote java.util
    • É preciso usar import para acessar os tipos do framework
Tipos de Dados e Exceções em Java

E os arrays?

  • Arrays em Java podem conter um grupo de objetos ou primitivos
    • O Collections Framework oferece um conjunto alternativo de estruturas
  • Ambos têm prós e contras
Arrays Collections
Não redimensionáveis Tamanho dinâmico (crescem e encolhem)
Armazena primitivos ou objetos Armazena apenas objetos
Homogêneos - elementos devem ser iguais Heterogêneos - objetos podem variar
Notação especial [] para acesso Usa métodos para acessar objetos
Sintaxe especial {} para inicializar Usa new (sem sintaxe especial)
Tipos de Dados e Exceções em Java

Tipos do Collections Framework

  • O Collections Framework se divide em dois tipos básicos: Collection e Map
    • Representados por duas interfaces: java.util.Collection e java.util.Map
    • Ambas têm várias classes que as implementam
  • import java.util.*; para usar qualquer tipo do Collections Framework

Collections Framework tem dois tipos básicos: Collection e Map

Tipos de Dados e Exceções em Java

Collection

  • Collection define vários tipos de agrupamentos de objetos
    • Definidos por interfaces adicionais
  • Grupo ordenado de objetos: List
  • Grupo não ordenado de objetos: Set
  • Primeiro a entrar, primeiro a sair: Queue
    • Funciona como fila de banco ou bilheteria
  • Métodos .add(Object) e .remove(Object) para modificar qualquer Collection

Collection inclui List, Set e Map

Tipos de Dados e Exceções em Java

Map

  • Estruturas de dados Map funcionam como lista telefônica ou dicionário
    • Objetos "chave" -> para objetos "valor"
    • Na lista telefônica, um nome -> número de telefone
    • No dicionário, uma palavra -> sua definição
  • Use a chave para modificar um Map
    • .put(Object key, Object value) adiciona ao Map
    • .remove(Object key) remove do Map
  • Muitos tipos de Map — como HashMap

A estrutura Map opera como uma lista telefônica ou dicionário

Tipos de Dados e Exceções em Java

Generics

  • Collections e Maps são "parametrizados"
    • Generics em Java especificam os objetos em um Collection ou Map
    • Sintaxe genérica: <Class> com tipo parametrizado.
      • < > é o operador diamante
ArrayList<String> list = new ArrayList<String>();  // Construção com generics
Tipos de Dados e Exceções em Java

Generics e segurança de tipos

  • Generics aumentam a segurança de tipos
    • Restringem os objetos permitidos em Collection e Map
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // Adicionar uma String é ok
list.add(new Integer(5));  // Tentar adicionar um Integer causa erro de compilação
Tipos de Dados e Exceções em Java

Sem usar generics

ArrayList list2 = new ArrayList();  // Válido, mas não específico

list2.add("hello");                 // Agora qualquer tipo de objeto pode ser adicionado
list2.add(new Integer(5));
Tipos de Dados e Exceções em Java

Declaração de variável e atribuição

  • Declaração de variável e atribuição podem ser feitas separadamente
ArrayList<String> list = new ArrayList<String>(); //Declaração e atribuição em uma linha

ArrayList<String> list2;    // Declaração da variável...
list2 = new ArrayList<String>();  //... e a atribuição podem ser 2 instruções
Tipos de Dados e Exceções em Java

Vamos praticar!

Tipos de Dados e Exceções em Java

Preparing Video For Download...