(Created page with "{{TOCright}} = Problema = Complete a classe '''Application''' por forma a implementar a funcionalidade desejada: ordenar a lista de gatos por idade (a implementação por omi...") |
|||
Line 4: | Line 4: | ||
Complete a classe '''Application''' por forma a implementar a funcionalidade desejada: ordenar a lista de gatos por idade (a implementação por omissão, para '''Animal''', ordena por peso). Não é aceitável a alteração da classe '''Animal''' ou da classe '''Cat'''. Pode ser necessário criar classes auxiliares. | Complete a classe '''Application''' por forma a implementar a funcionalidade desejada: ordenar a lista de gatos por idade (a implementação por omissão, para '''Animal''', ordena por peso). Não é aceitável a alteração da classe '''Animal''' ou da classe '''Cat'''. Pode ser necessário criar classes auxiliares. | ||
− | < | + | <source lang="java"> |
− | import java.util.*; | + | import java.util.*; |
− | class Animal implements Comparable<Animal> { | + | class Animal implements Comparable<Animal> { |
− | private Double _weight; | + | private Double _weight; |
− | public Animal(double weight) { _weight = weight; } | + | public Animal(double weight) { _weight = weight; } |
− | public Double getWeight() { return _weight; } | + | public Double getWeight() { return _weight; } |
− | public int compareTo(Animal a) { return _weight.compareTo(a.getWeight()); } | + | public int compareTo(Animal a) { return _weight.compareTo(a.getWeight()); } |
− | public String toString() { return "Peso " + _weight; } | + | public String toString() { return "Peso " + _weight; } |
− | } | + | } |
− | class Cat extends Animal { | + | class Cat extends Animal { |
− | private Integer _age; | + | private Integer _age; |
− | public Cat(int age, double weight) { super(weight); _age = age; } | + | public Cat(int age, double weight) { super(weight); _age = age; } |
− | public Integer getAge() { return _age; } | + | public Integer getAge() { return _age; } |
− | public String toString() { return super.toString() + " e idade " + _age; } | + | public String toString() { return super.toString() + " e idade " + _age; } |
− | } | + | } |
− | public class Application { | + | public class Application { |
− | public static void main(String args[]) { | + | public static void main(String args[]) { |
− | List<Cat> cats = new ArrayList<Cat>(); | + | List<Cat> cats = new ArrayList<Cat>(); |
− | cats.add(new Cat(1, 8)); | + | cats.add(new Cat(1, 8)); |
− | cats.add(new Cat(2, 7)); | + | cats.add(new Cat(2, 7)); |
− | cats.add(new Cat(3, 6)); | + | cats.add(new Cat(3, 6)); |
− | Collections.sort(cats); // ordenação por peso (_weight) | + | Collections.sort(cats); // ordenação por peso (_weight) |
− | for (Cat cat: cats) System.out.println(cat); | + | for (Cat cat: cats) System.out.println(cat); |
− | //... código em falta ... // ordenação por idade (_age) | + | //... código em falta ... // ordenação por idade (_age) |
− | for (Cat cat: cats) System.out.println(cat); | + | for (Cat cat: cats) System.out.println(cat); |
− | } | + | } |
} | } | ||
− | </ | + | </source> |
= Solução = | = Solução = |
Complete a classe Application por forma a implementar a funcionalidade desejada: ordenar a lista de gatos por idade (a implementação por omissão, para Animal, ordena por peso). Não é aceitável a alteração da classe Animal ou da classe Cat. Pode ser necessário criar classes auxiliares.
import java.util.*;
class Animal implements Comparable<Animal> {
private Double _weight;
public Animal(double weight) { _weight = weight; }
public Double getWeight() { return _weight; }
public int compareTo(Animal a) { return _weight.compareTo(a.getWeight()); }
public String toString() { return "Peso " + _weight; }
}
class Cat extends Animal {
private Integer _age;
public Cat(int age, double weight) { super(weight); _age = age; }
public Integer getAge() { return _age; }
public String toString() { return super.toString() + " e idade " + _age; }
}
public class Application {
public static void main(String args[]) {
List<Cat> cats = new ArrayList<Cat>();
cats.add(new Cat(1, 8));
cats.add(new Cat(2, 7));
cats.add(new Cat(3, 6));
Collections.sort(cats); // ordenação por peso (_weight)
for (Cat cat: cats) System.out.println(cat);
//... código em falta ... // ordenação por idade (_age)
for (Cat cat: cats) System.out.println(cat);
}
}