SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Wende Mendes HiginoWende Mendes Higino
email: wende.mendes@bluesoft.com.bremail: wende.mendes@bluesoft.com.br
Google CollectionsGoogle Collections
ObjetivoObjetivo
Google CollectionsGoogle Collections
- List- List
- Set- Set
- Map- Map
- Multimap- Multimap
- Multiset- Multiset
Google CollectionsGoogle Collections
ListList
Google CollectionsGoogle Collections
Antes:
final List<String> dias = new ArrayList<String>();
dias.add("Segunda");
dias.add("Terça");
Agora:
final List<String> dias = Lists.newArrayList("Segunda", "Terça");
Google CollectionsGoogle Collections
MapMap
Google CollectionsGoogle Collections
Antes:
final Map<Integer, Fornecedor> fornecedores = new HashMap<Integer,
Fornecedor>();
fornecedores.put(1, new Fornecedor(1, "Bolha Peixes"));
fornecedores.put(2, new Fornecedor(1, "Lui Bebidas"));
Agora:
final Map<Integer, Fornecedor> fornecedoresGoogle = Maps.newHashMap();
fornecedoresGoogle.put(1, new Fornecedor(1, "Bolha Peixes"));
fornecedoresGoogle.put(2, new Fornecedor(1, "Lui Bebidas"));
Google CollectionsGoogle Collections
Antes:
Map<Integer, String> imutableMapAntigo;
final Map<Integer, String> mapAntigo = new HashMap<Integer, String>();
mapAntigo.put(1, "Bolha");
mapAntigo.put(2, "Wende");
imutableMapAntigo = Collections.unmodifiableMap(mapAntigo);
Agora:
ImmutableMap<Integer, String> immutableMap = ImmutableMap.of(1, "Bolha", 2, "Wende");
Google CollectionsGoogle Collections
Set
Google CollectionsGoogle Collections
- HashSet;
- LinkedHashSet;
- TreeSet;
- ImmutableSet
Google CollectionsGoogle Collections
Antes:
final Set<String> dias = new HashSet<String>();
dias.add("Segunda");
dias.add("Terça");
Ou:
final Set<String> dias = new HashSet<String>(Arrays.asList("Segunda", "Terça");
Agora:
final Set<String> dias = Sets.newHashSet("Segunda", "Terça");
Console:
Terça, Segunda ou Segunda, Terça
Google CollectionsGoogle Collections
Antes:
final Set<String> dias = new LinkedHashSet<String>();
dias.add("Segunda");
dias.add("Terça");
dias.add("Quarta");
Agora:
final Set<String> dias = Sets.newLinkedHashSet();
dias.add("Segunda");
dias.add("Terça");
dias.add("Quarta");
Console:
Segunda, Terça, Quarta
Google CollectionsGoogle Collections
Antes:
final Set<String> dias = new TreeSet<String>();
dias.add("Segunda");
dias.add("Terça");
dias.add("Quarta");
Agora:
final Set<String> dias = Sets.newTreeSet();
dias.add("Segunda");
dias.add("Terça");
dias.add("Quarta");
Console:
Quarta, Segunda, Terça
Google CollectionsGoogle Collections
Antes:
Set<String> setAntigo = new HashSet<String>();
setAntigo.add("Bolha");
setAntigo.add("Wende");
Collection<String> imutableSetAntigo = Collections.unmodifiableCollection(setAntigo);
Agora:
ImmutableSet<String> immutableSet = ImmutableSet.of("Lui", "Bolha");
Google CollectionsGoogle Collections
MultimapsMultimaps
Google CollectionsGoogle Collections
Antes:
final Map<Integer, List<Fornecedor>> map = new HashMap<Integer,
List<Fornecedor>>();
public void popular(final Integer fornecedorKey, final Fornecedor fornecedor) {
List<Fornecedor> fornecedores = map.get(fornecedorKey);
if (fornecedores == null) {
fornecedores = new ArrayList<Fornecedor>();
map.put(fornecedorKey, fornecedores);
}
fornecedores.add(fornecedor);
}
Google CollectionsGoogle Collections
Agora:
- ArrayListMultimap;
- LinkedListMultimap;
- TreeMultimap;
- HashMultimap;
- LinkedHashMultimap;
- ImmutableListMultimap
- ImmutableSetMultimap
Google CollectionsGoogle Collections
Agora:
final Multimap<Integer, Fornecedor> multimap = ArrayListMultimap.create();
public void popular(final Integer fornecedorKey, final Fornecedor fornecedor) {
multimap.put(fornecedorKey, fornecedor);
}
Google CollectionsGoogle Collections
final Multimap<Integer, Fornecedor> multimap = ArrayListMultimap.create();
multimap.put(1, "Lui");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(1, "Andre");
multimap.put(2, "Bolha");
Console:
1 = {Lui, André}
2 = {Wende, Wende, Wende, Bolha}
Google CollectionsGoogle Collections
final Multimap<Integer, String> multimap = HashMultimap.create();
multimap.put(1, "Lui");
multimap.put(2, "Bolha");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(1, "Andre");
Console:
1 = {André, Lui}
2 = {Wende, Bolha}
Google CollectionsGoogle Collections
final Multimap<Integer, String> multimap = LinkedHashMultimap.create();
multimap.put(1, "Lui");
multimap.put(2, "Bolha");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(1, "Andre");
Console:
1 = {Lui, André}
2 = {Bolha, Wende}
Google CollectionsGoogle Collections
final Multimap<Integer, String> multimap = TreeMultimap.create();
multimap.put(1, "Lui");
multimap.put(2, "Bolha");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(2, "Wende");
multimap.put(1, "Andre");
Console:
1 = {André, Lui}
2 = {Bolha, Wende}
Google CollectionsGoogle Collections
Agora:
Multimap<Integer, String> multimap =
ImmutableListMultimap.of(1, "Lui", 2, "Wende", 1, "China", 1, "Lui");
Console:
1 = { Lui, China, Lui }
2 = { Wende }
Google CollectionsGoogle Collections
Agora:
Multimap<Integer, String> multimap = ImmutableSetMultimap.of(1, "Lui", 2,
"Wende", 1, "China", 1, "Lui");
Console:
1 = { Lui, China}
2 = { Wende }
Google CollectionsGoogle Collections
MultisetsMultisets
Google CollectionsGoogle Collections
- HashMultiset
- LinkedHashMultiset
- TreeMultiset
- EnumMultiset
Google CollectionsGoogle CollectionsAgora:
Multiset<String> nomes = HashMultiset.create();
nomes.add("Wende");
nomes.add("China", 3);
nomes.add("Bolha");
Google CollectionsGoogle Collections
for (final String nome : nomes) {
System.out.println(nome);
}
O que será impresso ???
Google CollectionsGoogle Collections
Console:
Wende, Bolha, China, China, China
Google CollectionsGoogle Collections
System.out.println(nomes.elementSet());
Console:
Wende, Bolha, China
System.out.println(nomes.count("China"));
Console:
3
System.out.println(nomes.size());
Console:
5
Google CollectionsGoogle Collections
enum Fornecedor {
BolhaPeixes, DouglasCafe
}
final EnumMultiset<Fornecedor> fornecedores = EnumMultiset.create(Fornecedor.class);
fornecedores.add(Fornecedor.BolhaPeixes);
fornecedores.add(Fornecedor.BolhaPeixes);
fornecedores.add(Fornecedor.BolhaPeixes);
fornecedores.add(Fornecedor.DouglasCafe);
System.out.println(fornecedores.elementSet());
Console:
BolhaPeixes, DouglasCafe
Google CollectionsGoogle Collections
Também tenho estas opções:
final Multiset<String> nomes = LinkedHashMultiset.create();
final Multiset<String> nomes = TreeMultiset.create();
ImagensImagens
http://www.flickr.com/photos/dannysullivan/272645770/
http://www.flickr.com/photos/northbaywanderer/121971249/
http://www.fl ickr.com/photos/colm/551068416/
http://www.fl ickr.com/photos/vermininc/2335148856/
http://www.fl ickr.com/photos/caveman_92223/3185534518/
http://www.fl ickr.com/photos/fdecomite/2908653728/

Weitere ähnliche Inhalte

Andere mochten auch

Pare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaPare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaWende Mendes
 
Dicas de codificação parte I
Dicas de codificação parte IDicas de codificação parte I
Dicas de codificação parte IWende Mendes
 
Dicas para pescar tucunare
Dicas para pescar tucunareDicas para pescar tucunare
Dicas para pescar tucunareWende Mendes
 
Aprenda com o simples
Aprenda com o simples Aprenda com o simples
Aprenda com o simples Wende Mendes
 
Produtividade com teste de integracao
Produtividade com teste de integracaoProdutividade com teste de integracao
Produtividade com teste de integracaoWende Mendes
 
Táticas para motivar a sus equipe
Táticas para motivar a sus equipeTáticas para motivar a sus equipe
Táticas para motivar a sus equipeWende Mendes
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipeWende Mendes
 

Andere mochten auch (8)

Pare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaPare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vida
 
Music Blog
Music BlogMusic Blog
Music Blog
 
Dicas de codificação parte I
Dicas de codificação parte IDicas de codificação parte I
Dicas de codificação parte I
 
Dicas para pescar tucunare
Dicas para pescar tucunareDicas para pescar tucunare
Dicas para pescar tucunare
 
Aprenda com o simples
Aprenda com o simples Aprenda com o simples
Aprenda com o simples
 
Produtividade com teste de integracao
Produtividade com teste de integracaoProdutividade com teste de integracao
Produtividade com teste de integracao
 
Táticas para motivar a sus equipe
Táticas para motivar a sus equipeTáticas para motivar a sus equipe
Táticas para motivar a sus equipe
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipe
 

Mehr von Wende Mendes

Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolabWende Mendes
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para EquipeWende Mendes
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play frameworkWende Mendes
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1Wende Mendes
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosWende Mendes
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5Wende Mendes
 
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosWende Mendes
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisWende Mendes
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classesWende Mendes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a rubyWende Mendes
 
Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Wende Mendes
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Dicas de codificação parte II
Dicas de codificação parte IIDicas de codificação parte II
Dicas de codificação parte IIWende Mendes
 

Mehr von Wende Mendes (19)

Rotas com angular
Rotas com angularRotas com angular
Rotas com angular
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para Equipe
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
 
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplos
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito mais
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a ruby
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
 
Palestra hudson
Palestra hudsonPalestra hudson
Palestra hudson
 
Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
Dicas de codificação parte II
Dicas de codificação parte IIDicas de codificação parte II
Dicas de codificação parte II
 

Palestra collection google