(→How to Compile and Run) |
(→Class Album) |
||
Line 35: | Line 35: | ||
<java5> | <java5> | ||
+ | import java.util.Collections; | ||
+ | import java.util.LinkedList; | ||
+ | import java.util.List; | ||
+ | import java.util.TreeMap; | ||
+ | |||
+ | /** | ||
+ | * An album is built around a tree map, so that card order can be used. | ||
+ | */ | ||
+ | public class Album { | ||
+ | |||
+ | /** | ||
+ | * The card collection. | ||
+ | */ | ||
+ | private TreeMap<Integer, Card> _cards = new TreeMap<Integer, Card>(); | ||
+ | |||
+ | /** | ||
+ | * @return sorted list (comparable cards). | ||
+ | */ | ||
+ | public List<Card> getAll() { | ||
+ | List<Card> lst = new LinkedList<Card>(); | ||
+ | lst.addAll(_cards.values()); | ||
+ | Collections.sort(lst); | ||
+ | return lst; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Store a card. If a card has a number already in the tree, it replaces the | ||
+ | * old one (alternatively, we could refuse storing a card with an existing | ||
+ | * number). | ||
+ | * | ||
+ | * @param card | ||
+ | */ | ||
+ | public void add(Card card) { | ||
+ | _cards.put(card.getId(), card); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Remove a card. | ||
+ | * | ||
+ | * @param id | ||
+ | * card number | ||
+ | */ | ||
+ | public void remove(int id) { | ||
+ | _cards.remove(id); | ||
+ | } | ||
+ | |||
+ | } | ||
</java5> | </java5> | ||
Considere uma caderneta de cromos. Os cromos têm um número e uma imagem. Não é necessário modelar a imagem, considere a imagem como sendo uma instância da seguinte classe:
<java5> class Image { /* conteúdo omitido */ } </java5>
A caderneta guarda os cromos pela ordem de numeração e não permite guardar cromos repetidos. É possível adicionar cromos a uma caderneta (método add) e é possível remover um cromo se for indicado o seu número (método remove). Duas cadernetas dizem-se iguais (equals) se tiverem o mesmo número de cromos (independentemente das características dos cromos individuais). É possível obter uma lista ordenada (por número) contendo os cromos de uma caderneta (método getAll).
This is a very simple and uninteresting class.
<java5> public class Image {
} </java5>
<java5> </java5>
<java5> import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.TreeMap;
/**
* An album is built around a tree map, so that card order can be used. */
public class Album {
/** * The card collection. */ private TreeMap<Integer, Card> _cards = new TreeMap<Integer, Card>();
/** * @return sorted list (comparable cards). */ public List<Card> getAll() { List<Card> lst = new LinkedList<Card>(); lst.addAll(_cards.values()); Collections.sort(lst); return lst; }
/** * Store a card. If a card has a number already in the tree, it replaces the * old one (alternatively, we could refuse storing a card with an existing * number). * * @param card */ public void add(Card card) { _cards.put(card.getId(), card); }
/** * Remove a card. * * @param id * card number */ public void remove(int id) { _cards.remove(id); }
} </java5>