SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Coleções
Mario Jorge Pereira
Coleções
Mario Jorge Pereira
mariojp@gmail.com
Twitter @mariojp
Conceito
• Uma coleção é uma estrutura de dados que permite
armazenar vários objetos
• A coleção é, em si, um objeto também
– Um objeto de agregação
• As operações que podem ser feitas em coleções
variam mas normalmente incluem:
– Adição de elementos
– Remoção de elementos
– Acesso aos elementos
– Pesquisa de elementos
– Indagar sobre atributos
Tipos de Coleções
• Dependendo da forma de fazer as 4 operações
básicas (adição, remoção, acesso e pesquisa), teremos
vários tipos de coleções
– Certas operações poderão ter um desempenho melhor ou
pior dependendo do tipo de coleção
– Certas operações poderão ter restrições ou
funcionalidade especial dependendo do tipo de coleção
• Os três grandes grupos de coleções são:
– A lista (List)
– O conjunto (Set)
– O mapa (Map)
Listas (List)
• Uma lista é uma coleção de elementos arrumados
numa ordem linear, isto é, onde cada elemento tem um
antecessor (exceto o primeiro) e um sucessor (exceto o
último)
• Operações mais importantes:
– Adicionar um objeto em qualquer lugar da lista
– Remover um objeto presente em qualquer lugar da lista
– Obter o elemento de qualquer posição da lista
– Iterar sobre os elementos
– Descobrir se um certo elemento está na lista
– Descobrir o índice de um certo elemento na lista
– Obter o número de elementos da coleção
Conjuntos
• Um conjunto é uma coleção que não possui elementos
duplicados (descarta duplicações)
• Operações mais importantes:
– Adicionar um objeto no conjunto
– Remover um objeto presente no conjunto
– Iterar sobre os elementos
– Descobrir se um certo elemento está na coleção
– Obter o número de elementos
Mapas (Map)
• Um mapa armazena pares (chave, valor) chamados
itens. Chaves e valores podem ser de qualquer tipo.
• Operações mais importantes:
– Adicionar um item no mapa (fornecendo chave e valor)
– Remover um item com chave dada
– Iterar sobre os itens
– Descobrir se um elemento com chave dada está na
coleção
– Obter o número de elementos
Coleções em Java Hierarquia de interfaces
fornecidas pelo Java
• O Map não é uma Collection mas podemos obter uma
"visão de Collection" com todas as chaves ou com
todos os valores .
Collection Map
SortedMapSetList
SortedSet
Métodos das coleções
• Collection, Set, HashSet e TreeSet:
– Adição:
• add(Object elemento)
– Remoção
• remove(Object elemento)
• clear()
– Acesso
• iterator()
– Pesquisa
• contains(Object elemento)
– Atributos
• size()
Métodos das coleções
• List, Vector, ArrayList e LinkedList
– Adição
• add(int index, Object elemento)
– Remoção
• remove(int index)
– Acesso
• get(int index)
• ListIterator() (iterador que pode andar para trás)
– Pesquisa
• indexOf(Object elemento)
Métodos das coleções
• Map, HashMap, TreeMap
– Adição
• put(Object key, Object value)
– Remoção
• remove(Object key)
• clear()
– Acesso
• get(Object key) (também é "pesquisa")
• entrySet() (retorna os itens como conjunto - Set)
• KeySet() (retorna as chaves como conjunto - Set)
• Values() (retorna os valores como Collection)
– Pesquisa
• get(Object key) (também é "acesso")
– Atributos
• size()
Hierarquia de classes e interfaces de
Collection
Object
AbstractCollection
AbstractList AbstractS et
LinkedList ArrayList Vector
AbstractS equentialList
Collection
HashSet TreeSet
Set
SortedSet
List
Hierarquia de classes e interfaces de Map
Object
AbstractMap
HashMap TreeMap
Map
HashTable SortedMap
Desafio
• Leia um arquivo contendo linhas com dois campos
separados por ":"
– Exemplo de linha:
• hfxtncscnzmd:pngtrhpeqmtjcstxdouof
– Insira cada linha como uma String emuma coleção
• Se a coleção for do tipo Map, o primeiro campo é a
chave, o segundo campo é a valor
• Leia um segundo arquivo linha por linha e pesquise se
cada linha está na coleção, imprimindo quantos
elementos foram descobertos
• Mais detalhes e dicas no PDF Desafio com coleções.
Regras básicas para escolher entre
coleções
• Decida aplicação dita se você vai precisar de Lista,
Conjunto ou Mapa?
– Se sua aplicação precisar manter duplicatas, use Lista
• Se precisar fazer muita pesquisa, fuja da lista!
– Se sua aplicação não precisar manter duplicatas e não
usa chaves, use Conjunto
– Se sua aplicação não precisar manter duplicatas e usa
chaves, use Mapa
Regras básicas para escolher entre
coleções
• Se escolheu uma Lista
– Use Vector se acessar por índice for comum
– Use LinkedList se inserir ou remover elementos do
meio com freqüência
• Se escolheu um Conjunto
– Use HashSet se não precisar de um conjunto ordenado
– Use TreeSet se precisar de um conjunto ordenado
• Se escolheu de um Mapa
– Use HashMap se não precisar de um mapa ordenado
– Use TreeMap se precisar de um mapa ordenado
Formas de percorrer uma Coleção
for(Iterator it = <colecao>.iterator()
;it.hasNext() ; ){
<Tipo> <referencia> (<Tipo>) it.next();
}
Iterator it = <colecao>.iterator();
while (it.hasNext()){
<Tipo> <referencia> (<Tipo>) it.next();
}
for( <Tipo> <referencia> : <coleção> ) {
usar a <referencia>;
} //JAVA 1.5
Referências
• Core Java - Vol. 1 - Fundamentos - 8ª Ed. 2010
Autor: Cornell, Gary; Horstmann, Cay S.
Editora: Pearson Education – Br
I.S.B.N.: 9788576053576
• Prof Dr. Jacques Philippe Sauvé
(<http://www.dsc.ufcg.edu.br/~jacques>)
• Argonavis (<www.argonavis.com.br>)
• Mario Jorge Pereira (<www.mariojp.com.br>)
Notas de Aula

Mais conteúdo relacionado

Mais procurados

Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaEdureka!
 
Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Java Collection framework
Java Collection frameworkJava Collection framework
Java Collection frameworkankitgarg_er
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsHelder da Rocha
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets Hitesh-Java
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Java collections concept
Java collections conceptJava collections concept
Java collections conceptkumar gaurav
 
Collections Api - Java
Collections Api - JavaCollections Api - Java
Collections Api - JavaDrishti Bhalla
 
Collections - Maps
Collections - Maps Collections - Maps
Collections - Maps Hitesh-Java
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in javaCPD INDIA
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 
ListView RecyclerView.pptx
ListView RecyclerView.pptxListView RecyclerView.pptx
ListView RecyclerView.pptxOmakoiMalang
 

Mais procurados (20)

Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | Edureka
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Java Collection framework
Java Collection frameworkJava Collection framework
Java Collection framework
 
Java Collections Framework
Java Collections FrameworkJava Collections Framework
Java Collections Framework
 
Java Queue.pptx
Java Queue.pptxJava Queue.pptx
Java Queue.pptx
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
 
07 java collection
07 java collection07 java collection
07 java collection
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Collections framework in java
Collections framework in javaCollections framework in java
Collections framework in java
 
Java collections concept
Java collections conceptJava collections concept
Java collections concept
 
Collections Api - Java
Collections Api - JavaCollections Api - Java
Collections Api - Java
 
Collections - Maps
Collections - Maps Collections - Maps
Collections - Maps
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
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
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in java
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 
ListView RecyclerView.pptx
ListView RecyclerView.pptxListView RecyclerView.pptx
ListView RecyclerView.pptx
 

Semelhante a Coleções Java Map List Set

Semelhante a Coleções Java Map List Set (20)

Csharp fundamentals
Csharp fundamentalsCsharp fundamentals
Csharp fundamentals
 
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
 
8 collections-i
8 collections-i8 collections-i
8 collections-i
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 
Seminário - Java Collections
Seminário - Java CollectionsSeminário - Java Collections
Seminário - Java Collections
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
 
Java Collections - Tomaz Lavieri
Java Collections - Tomaz LavieriJava Collections - Tomaz Lavieri
Java Collections - Tomaz Lavieri
 
Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
Java collections-basic
Java collections-basicJava collections-basic
Java collections-basic
 
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
 
Aula_02_-_Listas_com_Vetores-OOP.ppt
Aula_02_-_Listas_com_Vetores-OOP.pptAula_02_-_Listas_com_Vetores-OOP.ppt
Aula_02_-_Listas_com_Vetores-OOP.ppt
 
Aula_02_-_Listas_com_Vetores-OOP_2011_2.ppt
Aula_02_-_Listas_com_Vetores-OOP_2011_2.pptAula_02_-_Listas_com_Vetores-OOP_2011_2.ppt
Aula_02_-_Listas_com_Vetores-OOP_2011_2.ppt
 
Slides collections
Slides collectionsSlides collections
Slides collections
 
Lista_Encadeada.pptx
Lista_Encadeada.pptxLista_Encadeada.pptx
Lista_Encadeada.pptx
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
 
Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
 
Collections Java (1/2)
Collections Java (1/2)Collections Java (1/2)
Collections Java (1/2)
 

Mais de Mario Jorge Pereira (20)

Educacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial GenerativaEducacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial Generativa
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
Java www
Java wwwJava www
Java www
 
Html
HtmlHtml
Html
 
HTTP
HTTPHTTP
HTTP
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Android por onde começar? Mini Curso Erbase 2015
Android por onde começar? Mini Curso Erbase 2015 Android por onde começar? Mini Curso Erbase 2015
Android por onde começar? Mini Curso Erbase 2015
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Mini curso Android
Mini curso AndroidMini curso Android
Mini curso Android
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Minicurso Android
Minicurso AndroidMinicurso Android
Minicurso Android
 
Android, por onde começar?
Android, por onde começar?Android, por onde começar?
Android, por onde começar?
 
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
 
Android e Cloud Computing
Android e Cloud ComputingAndroid e Cloud Computing
Android e Cloud Computing
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Socket
SocketSocket
Socket
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 
GUI - Eventos
GUI - EventosGUI - Eventos
GUI - Eventos
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 

Coleções Java Map List Set

  • 3. Conceito • Uma coleção é uma estrutura de dados que permite armazenar vários objetos • A coleção é, em si, um objeto também – Um objeto de agregação • As operações que podem ser feitas em coleções variam mas normalmente incluem: – Adição de elementos – Remoção de elementos – Acesso aos elementos – Pesquisa de elementos – Indagar sobre atributos
  • 4. Tipos de Coleções • Dependendo da forma de fazer as 4 operações básicas (adição, remoção, acesso e pesquisa), teremos vários tipos de coleções – Certas operações poderão ter um desempenho melhor ou pior dependendo do tipo de coleção – Certas operações poderão ter restrições ou funcionalidade especial dependendo do tipo de coleção • Os três grandes grupos de coleções são: – A lista (List) – O conjunto (Set) – O mapa (Map)
  • 5. Listas (List) • Uma lista é uma coleção de elementos arrumados numa ordem linear, isto é, onde cada elemento tem um antecessor (exceto o primeiro) e um sucessor (exceto o último) • Operações mais importantes: – Adicionar um objeto em qualquer lugar da lista – Remover um objeto presente em qualquer lugar da lista – Obter o elemento de qualquer posição da lista – Iterar sobre os elementos – Descobrir se um certo elemento está na lista – Descobrir o índice de um certo elemento na lista – Obter o número de elementos da coleção
  • 6. Conjuntos • Um conjunto é uma coleção que não possui elementos duplicados (descarta duplicações) • Operações mais importantes: – Adicionar um objeto no conjunto – Remover um objeto presente no conjunto – Iterar sobre os elementos – Descobrir se um certo elemento está na coleção – Obter o número de elementos
  • 7. Mapas (Map) • Um mapa armazena pares (chave, valor) chamados itens. Chaves e valores podem ser de qualquer tipo. • Operações mais importantes: – Adicionar um item no mapa (fornecendo chave e valor) – Remover um item com chave dada – Iterar sobre os itens – Descobrir se um elemento com chave dada está na coleção – Obter o número de elementos
  • 8. Coleções em Java Hierarquia de interfaces fornecidas pelo Java • O Map não é uma Collection mas podemos obter uma "visão de Collection" com todas as chaves ou com todos os valores . Collection Map SortedMapSetList SortedSet
  • 9. Métodos das coleções • Collection, Set, HashSet e TreeSet: – Adição: • add(Object elemento) – Remoção • remove(Object elemento) • clear() – Acesso • iterator() – Pesquisa • contains(Object elemento) – Atributos • size()
  • 10. Métodos das coleções • List, Vector, ArrayList e LinkedList – Adição • add(int index, Object elemento) – Remoção • remove(int index) – Acesso • get(int index) • ListIterator() (iterador que pode andar para trás) – Pesquisa • indexOf(Object elemento)
  • 11. Métodos das coleções • Map, HashMap, TreeMap – Adição • put(Object key, Object value) – Remoção • remove(Object key) • clear() – Acesso • get(Object key) (também é "pesquisa") • entrySet() (retorna os itens como conjunto - Set) • KeySet() (retorna as chaves como conjunto - Set) • Values() (retorna os valores como Collection) – Pesquisa • get(Object key) (também é "acesso") – Atributos • size()
  • 12. Hierarquia de classes e interfaces de Collection Object AbstractCollection AbstractList AbstractS et LinkedList ArrayList Vector AbstractS equentialList Collection HashSet TreeSet Set SortedSet List
  • 13. Hierarquia de classes e interfaces de Map Object AbstractMap HashMap TreeMap Map HashTable SortedMap
  • 14. Desafio • Leia um arquivo contendo linhas com dois campos separados por ":" – Exemplo de linha: • hfxtncscnzmd:pngtrhpeqmtjcstxdouof – Insira cada linha como uma String emuma coleção • Se a coleção for do tipo Map, o primeiro campo é a chave, o segundo campo é a valor • Leia um segundo arquivo linha por linha e pesquise se cada linha está na coleção, imprimindo quantos elementos foram descobertos • Mais detalhes e dicas no PDF Desafio com coleções.
  • 15. Regras básicas para escolher entre coleções • Decida aplicação dita se você vai precisar de Lista, Conjunto ou Mapa? – Se sua aplicação precisar manter duplicatas, use Lista • Se precisar fazer muita pesquisa, fuja da lista! – Se sua aplicação não precisar manter duplicatas e não usa chaves, use Conjunto – Se sua aplicação não precisar manter duplicatas e usa chaves, use Mapa
  • 16. Regras básicas para escolher entre coleções • Se escolheu uma Lista – Use Vector se acessar por índice for comum – Use LinkedList se inserir ou remover elementos do meio com freqüência • Se escolheu um Conjunto – Use HashSet se não precisar de um conjunto ordenado – Use TreeSet se precisar de um conjunto ordenado • Se escolheu de um Mapa – Use HashMap se não precisar de um mapa ordenado – Use TreeMap se precisar de um mapa ordenado
  • 17. Formas de percorrer uma Coleção for(Iterator it = <colecao>.iterator() ;it.hasNext() ; ){ <Tipo> <referencia> (<Tipo>) it.next(); } Iterator it = <colecao>.iterator(); while (it.hasNext()){ <Tipo> <referencia> (<Tipo>) it.next(); } for( <Tipo> <referencia> : <coleção> ) { usar a <referencia>; } //JAVA 1.5
  • 18. Referências • Core Java - Vol. 1 - Fundamentos - 8ª Ed. 2010 Autor: Cornell, Gary; Horstmann, Cay S. Editora: Pearson Education – Br I.S.B.N.: 9788576053576 • Prof Dr. Jacques Philippe Sauvé (<http://www.dsc.ufcg.edu.br/~jacques>) • Argonavis (<www.argonavis.com.br>) • Mario Jorge Pereira (<www.mariojp.com.br>) Notas de Aula