Código da classe ShowNumbersOrdered:
package ex.app.main;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;
import ex.core.IntegerManager;
import pt.tecnico.po.ui.Command;
import pt.tecnico.po.ui.DialogException;
public class ShowNumbersOrdered extends Command<IntegerManager> {
//Constructor
public ShowNumbersOrdered(IntegerManager ent) {
super("Listar Números Ordeenados", ent);
}
protected void execute() { // executed when this option is selected
List<Integer> list = _receiver.getNumbers();
List<Integer> ordered = new ArrayList<>(list);
Collections.sort(ordered, new NumberComparator());
// ou simplesmente Collection.sort(ordered), dado que Integer concretiza a interface Comparable
for (Integer number : ordered)
_display.addLine(number.toString());
_display.display();
}
}
É ainda necessário acrescentar o código do comprador a utilizar para ordenar números (se bem que não fosse necessário dado que a classe Integer suporta a ordenação natural, que corresponde à ordenação que queremos realizar. Assim seria necessário acrescentar o seguinte código ao ficheiro ShowNumbersOrdered:
class NumberComparator implements Comparator<Integer> {
public int compare(Integer i1, Integer i2) {
return i1 - i2;
}
}