SlideShare uma empresa Scribd logo
Collection Framework
Lucas Santos
Lilian Tobace
Rafael Dias
Introdução
 Collections é um meio de apresentar interface, em que há implementações e
algoritmos da Collections Framework, este framework possui elementos que
ajudam o desenvolvedor aplicar em interfaces que necessitem de estruturas
de dados.
2
Collection Framework
 A Collection Framework possui os seguintes elementos:
 Interfaces: são tipos abstratos que representam as coleções
 Implementações: implementações concretas da interface.
 Algoritmos: Métodos que realizam operações sobre os objetos das coleçoe
3
Collection Framework
4
List
 List se encontra no pacote java.util.List, em que representa uma lista de
objetos que caracteriza-se pelo fato de conter elementos duplicados e são
ordenadas.
5
ArrayList: pros e contras
 Pro: Um Array dimensionado dinamicamente.
 Contra: Sempre que necessita o aumento, acontece em 50% do tamanho atual
criado um novo Array e isso tem alto custo computacional.
import java.util.ArrayList;
import java.util.Iterator;
public class Principal {
public static void main(String args[]) {
// a1 objeto do tipo ArrayList()
ArrayList al = new ArrayList();
al.add(3);
al.add(2);
al.add(1);
al.add(4);
al.add(5);
al.add(6);
al.add(6);
Iterator iter1 = al.iterator();
// hasNext() verifica se existe mais elementos.
while(iter1.hasNext()){
System.out.println(iter1.next());
}
// Mostrando o valor em posição especifica
System.out.println(al.get(2));
}
}
6
LinkedList: pros e contras
 Pro: Melhor performance nos métodos ADD e REMOVE em comparação ao
ArrayList.
 Contra: Pior performance nos métodos GET e SET em comparação ao
ArrayList.
import java.util.Iterator;
import java.util.LinkedList;
public class Principal {
public static void main(String args[]) {
// l1 objeto do tipo LinkedList()
LinkedList ll = new LinkedList();
ll.add(3);
ll.add(2);
ll.add(1);
ll.add(4);
ll.add(5);
ll.add(6);
ll.add(6);
Iterator iter2 = ll.iterator();
// hasNext() verifica se existe mais elementos.
while(iter2.hasNext()){
System.out.println(iter2.next());
}
}
}
7
Set
 Interface que faz parte do pacote java.util e representa grupo de elementos
sem duplicatas.
8
HashSet: pros e contras
 Pro: HashSet é o mais rápido dentre seus parecidos, deve se levar em conta
que toda estrutura de dados do tipo set não aceita valores repetidos.
 Contra: Não tem garantia de ordem com que os elementos são ordenados.
import java.util.HashSet;
import java.util.Iterator;
public class Principal {
public static void main(String args[]) {
// dset lista de objetos do tipo Dog
HashSet<Dog> dset = new HashSet<Dog>();
dset.add(new Dog(2));
dset.add(new Dog(1));
dset.add(new Dog(3));
dset.add(new Dog(5));
dset.add(new Dog(4));
Iterator<Dog> iterator = dset.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
class Dog {
int size;
public Dog(int s) {
size = s;
}
public String toString() {
return size + "";
}
}
9
TreeSet: pros e contras
 Pro: Ordena automaticamente, e por isso a complexidade no seu ADD,
REMOVE e CONTAINS é maior que no HashSet.
import java.util.TreeSet;
import java.util.Iterator;
public class Principal {
public static void main(String args[]) {
TreeSet<Integer> tree = new TreeSet<Integer>();
tree.add(12);
tree.add(63);
tree.add(34);
tree.add(45);
Iterator<Integer> iterator = tree.iterator();
System.out.print("Tree set data: ");
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
10
TreeSet: pros e contras
 Contra: Por ser ordenado automaticamente quanto se utiliza Objetos como
tipo de dados é necessário ter o comparable para indicar qual campo servira
para a ordenação.
import java.util.TreeSet;
import java.util.Iterator;
public class Principal {
public static void main(String args[]) {
TreeSet<Dog> dset = new TreeSet<Dog>();
dset.add(new Dog(2));
dset.add(new Dog(1));
dset.add(new Dog(3));
Iterator<Dog> iterator = dset.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
// Implementa o comparavel para poder usar o TreeSet com objetos
class Dog implements Comparable<Dog>{
int size;
public Dog(int s) {
size = s;
}
public String toString() {
return size + "";
}
@Override
public int compareTo(Dog o) {
return size - o.size;
}
}
11
Map
 Esta interface faz parte do pacote java.util e não possui métodos na interface
Collection, confia seus dados em um algoritmo hash, que transforma uma
grande quantidade e dados em uma pequena quantidade de informaçoes
12
HashMap: pros e contras
 Pro: É a classe mais utilizada da interface Map, pode se inserir valores e
chaves nulas.
 Contra: Um pouco complicada para a utilização de usuários iniciantes.
import java.util.HashMap;
import java.util.Map;
public class Principal {
public static void main(String[] args) {
// Inicializa a variavel mapaNomes como sendo do tipo HashMap
Map<String, String> mapaNomes = new HashMap<String, String>();
mapaNomes.put("1", "João Delfino");
mapaNomes.put("2", "Maria do Carmo");
mapaNomes.put("3", "Claudinei Silva");
// Exibe todos os elementos do mapaNomes
System.out.println(mapaNomes);
//resgatando o nome da posição 2
System.out.println(mapaNomes.get("2"));
}
}
13
TreeMap: pros e contras
 Pro: Esta classe apresenta ordenação pela chave.
 Contra: Apenas os valores podem ser nulos.
import java.util.Map;
import java.util.TreeMap;
public class Principal {
public static void main(String [] args) {
// Inicializa a variavel nomes como sendo do tipo TreeMap
Map<Integer,String> nomes = new TreeMap<Integer,String>();
nomes.put(5, "Eduardo");
nomes.put(3, "Luiz");
nomes.put(2, "Bruna");
nomes.put(4, "Sonia");
nomes.put(1, "Brianda");
nomes.put(7, "Julia");
nomes.put(6, "Carlos");
// Exibe todos os elementos de nomes
System.out.println(nomes);
// Resgata o nome da posição 5
System.out.println(nomes.get(5));
}
}
14
Conclusão
 Um ArrayList é utilizado quando se sabe quanto vai se armazenar nele, a
criação dinâmica de novos espaços.
 Um LinkedList possui melhor performance nos métodos add e remove, porém
perde performance em um get e set.
 HashSet usa HashTable em sua implementação, que por sinal é muito rápido
mas não garante a ordenação dos seus elementos.
 Um TreeSet perde um pouco em velocidade, porém ele ordena os elementos
automaticamente, não importa a ordem que forem inseridos.
 Um HashMap tem valor e chave nula porém é um pouco trabalhoso de se
utilizar.
 Um TreeMap é bem mais fácil de se utilizar, porém apenas os valores podem
ser nulos, chaves não.
15
Referências
 CARLOS - Java Collections: Como utilizar Collections – 2010 -
https://www.devmedia.com.br/java-collections-como-utilizar-collections/18450
 RONALDO - Diferença entre ArrayList, Vector e LinkedList em Java – 2013 -
https://www.devmedia.com.br/diferenca-entre-arraylist-vector-e-linkedlist-em-java/29162
 RONALDO - Diferenças entre TreeSet, HashSet e LinkedHashSet em Java – 2013 -
https://www.devmedia.com.br/diferencas-entre-treeset-hashset-e-linkedhashset-em-java/29077
 THIAGO - Conhecendo a interface Map do Java – 2016 -
https://www.devmedia.com.br/conhecendo-a-interface-map-do-java/37463
16

Mais conteúdo relacionado

Mais procurados

(A12) LabMM3 - JavaScript - Arrays
(A12) LabMM3 - JavaScript - Arrays(A12) LabMM3 - JavaScript - Arrays
(A12) LabMM3 - JavaScript - Arrays
Carlos Santos
 
Slides collections
Slides collectionsSlides collections
Slides collections
stefanycrispim
 
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
Loiane Groner
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
Ricardo Paiva
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
Guilherme André Turci
 
Aula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de DadosAula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de Dados
Fabio Moura Pereira
 
(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais
Carlos Santos
 
python
pythonpython
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
Felizardo Charles
 
Passagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e OraclePassagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e Oracle
André Reis
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
Manuel Menezes de Sequeira
 
LabMM3 - Aula teórica 10
LabMM3 - Aula teórica 10LabMM3 - Aula teórica 10
LabMM3 - Aula teórica 10
Carlos Santos
 
Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)
Rafael Liberato
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Tchelinux
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
Mario Jorge Pereira
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional Interfaces
DevCamp Campinas
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
Robson Eduardo
 
Aula 21
Aula 21Aula 21
Aula 13
Aula 13Aula 13
Git, GitHub e OO
Git, GitHub e OOGit, GitHub e OO
Git, GitHub e OO
DouglasSoaresAndrSch
 

Mais procurados (20)

(A12) LabMM3 - JavaScript - Arrays
(A12) LabMM3 - JavaScript - Arrays(A12) LabMM3 - JavaScript - Arrays
(A12) LabMM3 - JavaScript - Arrays
 
Slides collections
Slides collectionsSlides collections
Slides collections
 
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
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Aula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de DadosAula de Prolog 07 - Estruturas de Dados
Aula de Prolog 07 - Estruturas de Dados
 
(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais
 
python
pythonpython
python
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 
Passagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e OraclePassagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e Oracle
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
LabMM3 - Aula teórica 10
LabMM3 - Aula teórica 10LabMM3 - Aula teórica 10
LabMM3 - Aula teórica 10
 
Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)Cheat sheet - String Java (Referência rápida)
Cheat sheet - String Java (Referência rápida)
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional Interfaces
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
Aula 21
Aula 21Aula 21
Aula 21
 
Aula 13
Aula 13Aula 13
Aula 13
 
Git, GitHub e OO
Git, GitHub e OOGit, GitHub e OO
Git, GitHub e OO
 

Semelhante a Grupo2

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
Maurício Linhares
 
Grails: Java produtivo e divertido
Grails: Java produtivo e divertidoGrails: Java produtivo e divertido
Grails: Java produtivo e divertido
Lucas Teixeira
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
danrleywillian1
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
Emerson Cardoso
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
Natanael Fonseca
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
Maurício Linhares
 
Java8
Java8Java8
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
unifesptk
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
Maurício Linhares
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
Julio Viegas
 
Aula 01
Aula 01Aula 01
Aula 01
Igor Viveiros
 
String
StringString
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
Natanael Fonseca
 
Java 14
Java 14Java 14
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
Denis L Presciliano
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
Lorival Smolski Chapuis
 
Aula5
Aula5Aula5
Aula5
fkimura
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
Maurício Linhares
 
Threads
ThreadsThreads
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
Charles Fortes
 

Semelhante a Grupo2 (20)

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
 
Grails: Java produtivo e divertido
Grails: Java produtivo e divertidoGrails: Java produtivo e divertido
Grails: Java produtivo e divertido
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Java8
Java8Java8
Java8
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Aula 01
Aula 01Aula 01
Aula 01
 
String
StringString
String
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Java 14
Java 14Java 14
Java 14
 
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Aula5
Aula5Aula5
Aula5
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Threads
ThreadsThreads
Threads
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Grupo2

  • 2. Introdução  Collections é um meio de apresentar interface, em que há implementações e algoritmos da Collections Framework, este framework possui elementos que ajudam o desenvolvedor aplicar em interfaces que necessitem de estruturas de dados. 2
  • 3. Collection Framework  A Collection Framework possui os seguintes elementos:  Interfaces: são tipos abstratos que representam as coleções  Implementações: implementações concretas da interface.  Algoritmos: Métodos que realizam operações sobre os objetos das coleçoe 3
  • 5. List  List se encontra no pacote java.util.List, em que representa uma lista de objetos que caracteriza-se pelo fato de conter elementos duplicados e são ordenadas. 5
  • 6. ArrayList: pros e contras  Pro: Um Array dimensionado dinamicamente.  Contra: Sempre que necessita o aumento, acontece em 50% do tamanho atual criado um novo Array e isso tem alto custo computacional. import java.util.ArrayList; import java.util.Iterator; public class Principal { public static void main(String args[]) { // a1 objeto do tipo ArrayList() ArrayList al = new ArrayList(); al.add(3); al.add(2); al.add(1); al.add(4); al.add(5); al.add(6); al.add(6); Iterator iter1 = al.iterator(); // hasNext() verifica se existe mais elementos. while(iter1.hasNext()){ System.out.println(iter1.next()); } // Mostrando o valor em posição especifica System.out.println(al.get(2)); } } 6
  • 7. LinkedList: pros e contras  Pro: Melhor performance nos métodos ADD e REMOVE em comparação ao ArrayList.  Contra: Pior performance nos métodos GET e SET em comparação ao ArrayList. import java.util.Iterator; import java.util.LinkedList; public class Principal { public static void main(String args[]) { // l1 objeto do tipo LinkedList() LinkedList ll = new LinkedList(); ll.add(3); ll.add(2); ll.add(1); ll.add(4); ll.add(5); ll.add(6); ll.add(6); Iterator iter2 = ll.iterator(); // hasNext() verifica se existe mais elementos. while(iter2.hasNext()){ System.out.println(iter2.next()); } } } 7
  • 8. Set  Interface que faz parte do pacote java.util e representa grupo de elementos sem duplicatas. 8
  • 9. HashSet: pros e contras  Pro: HashSet é o mais rápido dentre seus parecidos, deve se levar em conta que toda estrutura de dados do tipo set não aceita valores repetidos.  Contra: Não tem garantia de ordem com que os elementos são ordenados. import java.util.HashSet; import java.util.Iterator; public class Principal { public static void main(String args[]) { // dset lista de objetos do tipo Dog HashSet<Dog> dset = new HashSet<Dog>(); dset.add(new Dog(2)); dset.add(new Dog(1)); dset.add(new Dog(3)); dset.add(new Dog(5)); dset.add(new Dog(4)); Iterator<Dog> iterator = dset.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } } class Dog { int size; public Dog(int s) { size = s; } public String toString() { return size + ""; } } 9
  • 10. TreeSet: pros e contras  Pro: Ordena automaticamente, e por isso a complexidade no seu ADD, REMOVE e CONTAINS é maior que no HashSet. import java.util.TreeSet; import java.util.Iterator; public class Principal { public static void main(String args[]) { TreeSet<Integer> tree = new TreeSet<Integer>(); tree.add(12); tree.add(63); tree.add(34); tree.add(45); Iterator<Integer> iterator = tree.iterator(); System.out.print("Tree set data: "); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } } 10
  • 11. TreeSet: pros e contras  Contra: Por ser ordenado automaticamente quanto se utiliza Objetos como tipo de dados é necessário ter o comparable para indicar qual campo servira para a ordenação. import java.util.TreeSet; import java.util.Iterator; public class Principal { public static void main(String args[]) { TreeSet<Dog> dset = new TreeSet<Dog>(); dset.add(new Dog(2)); dset.add(new Dog(1)); dset.add(new Dog(3)); Iterator<Dog> iterator = dset.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } } // Implementa o comparavel para poder usar o TreeSet com objetos class Dog implements Comparable<Dog>{ int size; public Dog(int s) { size = s; } public String toString() { return size + ""; } @Override public int compareTo(Dog o) { return size - o.size; } } 11
  • 12. Map  Esta interface faz parte do pacote java.util e não possui métodos na interface Collection, confia seus dados em um algoritmo hash, que transforma uma grande quantidade e dados em uma pequena quantidade de informaçoes 12
  • 13. HashMap: pros e contras  Pro: É a classe mais utilizada da interface Map, pode se inserir valores e chaves nulas.  Contra: Um pouco complicada para a utilização de usuários iniciantes. import java.util.HashMap; import java.util.Map; public class Principal { public static void main(String[] args) { // Inicializa a variavel mapaNomes como sendo do tipo HashMap Map<String, String> mapaNomes = new HashMap<String, String>(); mapaNomes.put("1", "João Delfino"); mapaNomes.put("2", "Maria do Carmo"); mapaNomes.put("3", "Claudinei Silva"); // Exibe todos os elementos do mapaNomes System.out.println(mapaNomes); //resgatando o nome da posição 2 System.out.println(mapaNomes.get("2")); } } 13
  • 14. TreeMap: pros e contras  Pro: Esta classe apresenta ordenação pela chave.  Contra: Apenas os valores podem ser nulos. import java.util.Map; import java.util.TreeMap; public class Principal { public static void main(String [] args) { // Inicializa a variavel nomes como sendo do tipo TreeMap Map<Integer,String> nomes = new TreeMap<Integer,String>(); nomes.put(5, "Eduardo"); nomes.put(3, "Luiz"); nomes.put(2, "Bruna"); nomes.put(4, "Sonia"); nomes.put(1, "Brianda"); nomes.put(7, "Julia"); nomes.put(6, "Carlos"); // Exibe todos os elementos de nomes System.out.println(nomes); // Resgata o nome da posição 5 System.out.println(nomes.get(5)); } } 14
  • 15. Conclusão  Um ArrayList é utilizado quando se sabe quanto vai se armazenar nele, a criação dinâmica de novos espaços.  Um LinkedList possui melhor performance nos métodos add e remove, porém perde performance em um get e set.  HashSet usa HashTable em sua implementação, que por sinal é muito rápido mas não garante a ordenação dos seus elementos.  Um TreeSet perde um pouco em velocidade, porém ele ordena os elementos automaticamente, não importa a ordem que forem inseridos.  Um HashMap tem valor e chave nula porém é um pouco trabalhoso de se utilizar.  Um TreeMap é bem mais fácil de se utilizar, porém apenas os valores podem ser nulos, chaves não. 15
  • 16. Referências  CARLOS - Java Collections: Como utilizar Collections – 2010 - https://www.devmedia.com.br/java-collections-como-utilizar-collections/18450  RONALDO - Diferença entre ArrayList, Vector e LinkedList em Java – 2013 - https://www.devmedia.com.br/diferenca-entre-arraylist-vector-e-linkedlist-em-java/29162  RONALDO - Diferenças entre TreeSet, HashSet e LinkedHashSet em Java – 2013 - https://www.devmedia.com.br/diferencas-entre-treeset-hashset-e-linkedhashset-em-java/29077  THIAGO - Conhecendo a interface Map do Java – 2016 - https://www.devmedia.com.br/conhecendo-a-interface-map-do-java/37463 16