Difference between revisions of "Colecções de Objectos"

From Wiki**3

(Exemplos)
Line 5: Line 5:
 
Classes utilitárias Collections e Arrays e o uso de algoritmos abstractos. Interfaces Comparable e Comparator. Discussão das diferenças.  A interface Map. Apresentação e discussão de exemplos. Alguns aspectos da utilização de programação com classes e interfaces paramétricas.
 
Classes utilitárias Collections e Arrays e o uso de algoritmos abstractos. Interfaces Comparable e Comparator. Discussão das diferenças.  A interface Map. Apresentação e discussão de exemplos. Alguns aspectos da utilização de programação com classes e interfaces paramétricas.
  
== Comparable vs. Comparator ==
+
== Alguns tipos salientes ==
 +
 
 +
Estruturas de armazenamento:
 +
* Colecções e iteráveis: [http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html Iterable<T>] (interface), [http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html Collection<T>] (interface), [http://docs.oracle.com/javase/7/docs/api/java/util/List.html List<T>] (interface), [http://docs.oracle.com/javase/7/docs/api/java/util/Set.html Set<T>] (interface), [http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html ArrayList<T>], [http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html LinkedList<T>], ...
 +
* Mapas: [http://docs.oracle.com/javase/7/docs/api/java/util/Map.html Map<K,V>] (interface), [http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html TreeMap<T>], [http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html HashMap<T>], [http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html LinkedHashMap<T>], ...
 +
 
 +
Estruturas de apoio:
 +
* Interfaces: [http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html Iterator<T>], [http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html Comparator<T>], [http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html Comparable<T>], ...
 +
 
 +
== java.lang.Comparable and java.util.Comparator ==
  
 
No primeiro caso, são as instâncias da própria classe as responsáveis por saber comparar-se com outras (e, como só pode haver um método com uma determinada interface, isso significa que o uso da interface Comparable apenas permite um método de comparação). As classes que implementam Comparator, pelo contrário, permitem a definição de um número arbitrário de estratégias de comparação de instâncias das classes que comparam (um método de comparação por classe).
 
No primeiro caso, são as instâncias da própria classe as responsáveis por saber comparar-se com outras (e, como só pode haver um método com uma determinada interface, isso significa que o uso da interface Comparable apenas permite um método de comparação). As classes que implementam Comparator, pelo contrário, permitem a definição de um número arbitrário de estratégias de comparação de instâncias das classes que comparam (um método de comparação por classe).
Line 20: Line 29:
 
* [[Strategy Pattern (padrão de desenho)]]
 
* [[Strategy Pattern (padrão de desenho)]]
  
== Iterable and Iterator ==
+
== java.lang.Iterable and java.util.Iterator ==
  
 
=== Exemplo ===
 
=== Exemplo ===

Revision as of 22:07, 29 October 2013

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)

Organização de objectos em colecções. Colecções em Java: vectores primitivos e a hierarquia de colecções. Uso de tipos paramétricos (generics). Apresentação de interfaces de topo: Collection, Set, List. Exemplo com LinkedList. Iteradores. Exemplo de utilização de iteradores. A interface Iterable e o uso de foreach: iteração implícita. Apresentação e discussão de exemplos.

Classes utilitárias Collections e Arrays e o uso de algoritmos abstractos. Interfaces Comparable e Comparator. Discussão das diferenças. A interface Map. Apresentação e discussão de exemplos. Alguns aspectos da utilização de programação com classes e interfaces paramétricas.

Alguns tipos salientes

Estruturas de armazenamento:

Estruturas de apoio:

java.lang.Comparable and java.util.Comparator

No primeiro caso, são as instâncias da própria classe as responsáveis por saber comparar-se com outras (e, como só pode haver um método com uma determinada interface, isso significa que o uso da interface Comparable apenas permite um método de comparação). As classes que implementam Comparator, pelo contrário, permitem a definição de um número arbitrário de estratégias de comparação de instâncias das classes que comparam (um método de comparação por classe).

A vantagem do uso da primeira está no menor número de classes. No entanto, a segunda, sem aumentar a complexidade de forma significativa (as classes de comparação são muito simples), contribui para a flexibilidade da aplicação nos aspectos relativos à comparação de objectos.

Exemplos

Ver Também

java.lang.Iterable and java.util.Iterator

Exemplo

Ver Também