我必须实施这个测试:
package it.unica.pr2.test;
import it.unica.pr2.abitazioni.*;
import java.util.Collections;
import java.util.List;
/*import javafx.application.Application;
import javafx.stage.Stage;*/
public class TestAbitazioni /*extends Application*/ {
public static void main(String[] args) /*public void start(Stage primaryStage) */{
// C
Immobile casa = new Casa();
List<Ambiente> c2 = casa;
// C+
casa.add(new Bagno(10)); // 10 mq
casa.add(new Cucina(20)); // 20 mq
casa.add(new CameraDaLetto(25)); // 25 mq
casa.add(new CameraDaLetto(15)); // 15 mq
casa.add(new Corridoio(12)); // 12 mq
assert casa.superficie() == 10 + 20 + 25 + 15 + 12;
assert casa.bilocale() == false; // i bi locali hanno solo 1 cucina 1 bagno 1 camera da letto (no altri ambienti)
// B
Bagno bagno = new Bagno(13);
assert bagno.toString().equals("Questo ambiente occupa 13mq");
Cucina cucina = new Cucina(26);
assert cucina.toString().equals("Questo ambiente occupa 26mq");
Collections.sort(casa); // sort by dimension
assert casa.get(0).getSuperficie() == 10;
assert casa.get(1).getSuperficie() == 12;
assert casa.get(2).getSuperficie() == 15;
assert casa.get(3).getSuperficie() == 20;
assert casa.get(4).getSuperficie() == 25;
// A
Collections.sort(casa, new StanzeByType()); // prima cucine, poi camere da letto, poi bagni, poi qualsiasi altro tipo; a parita' di tipo, dal piu' piccolo al piu' grande
assert casa.get(0).getSuperficie() == 20;
assert casa.get(1).getSuperficie() == 15;
assert casa.get(2).getSuperficie() == 25;
assert casa.get(3).getSuperficie() == 10;
assert casa.get(4).getSuperficie() == 12;
/*
// A+
casa.mostraCasa();
*
*/
}
/*
public static void main(String[] args) {
launch(args);
} */
}
Collections.sort(casa,new StanzeByType())问题在这里,我如何在这里实现一个类构造函数来按类型对集合进行排序? 如果意大利语是一个问题,我将翻译来源。 谢谢。
答案 0 :(得分:0)
我认为你的StanzeByType类应该是这样的,以便按类型排序......希望这可能会有所帮助
public class StanzeByType implements Comparator<Ambiente>{
@Override
public int compare(Ambiente amiAmbiente, Ambiente otherAmbiente) {
return amiAmbiente.getType().compareTo(otherAmbiente.getType());
}
}