(→1. Tabela comparável) |
(→2. Comparadores de Máximo e Comprimento) |
||
Line 107: | Line 107: | ||
== 2. Comparadores de Máximo e Comprimento == | == 2. Comparadores de Máximo e Comprimento == | ||
+ | |||
+ | {{CollapsedCode|Diagrama de classes| | ||
(por lapso, o diagrama UML omite o método '''contains''', mas o resto está correcto) | (por lapso, o diagrama UML omite o método '''contains''', mas o resto está correcto) | ||
[[Image:PO-Interfaces-Comparable-Comparator.png|600px]] | [[Image:PO-Interfaces-Comparable-Comparator.png|600px]] | ||
+ | }} | ||
Notar que as classes internas são static e que apenas estão contidas na classe Table por conveniência de ocultação de código. | Notar que as classes internas são static e que apenas estão contidas na classe Table por conveniência de ocultação de código. | ||
+ | {{CollapsedCode|Ficheiro '''Table.java'''| | ||
<java5> | <java5> | ||
import java.util.Comparator; | import java.util.Comparator; | ||
Line 279: | Line 283: | ||
} | } | ||
</java5> | </java5> | ||
+ | }} | ||
== 3. Comparador de Tabelas de Gatos == | == 3. Comparador de Tabelas de Gatos == |
Para este caso, é necessário definir a classe Table como implementando Comparable.
Ficheiro Table.java |
---|
{{{2}}} |
Diagrama de classes |
---|
(por lapso, o diagrama UML omite o método contains, mas o resto está correcto)
|
Notar que as classes internas são static e que apenas estão contidas na classe Table por conveniência de ocultação de código.
Ficheiro Table.java |
---|
{{{2}}} |
(a publicar)
<java5> /**
* Sample uses. */
public class Application {
/** * @param args */ public static void main(String[] args) { Table t1 = new Table(3); // table with 3 integers Table t2 = new Table(3); // table with 3 integers
t1.setAll(3); t2.setAll(90);
System.out.println(t1.compareTo(t2)); // <0 System.out.println(Table.MAX_COMPARATOR.compare(t1, t2)); // <0 System.out.println(Table.MAX_COMPARATOR.compare(t1, t1)); // 0 System.out.println(Table.MAX_COMPARATOR.compare(t2, t2)); // 0 System.out.println(Table.MAX_COMPARATOR.compare(t2, t1)); // >0 System.out.println(Table.LENGTH_COMPARATOR.compare(t1, t2)); // 0 (same length)
}
} </java5>[[category:PO Exemplos]