|
Állatkerti kifutók
Tekintse az alábbi osztálydiagramot!
Egy állatkertben az állatok elhelyezése nem kizárólag ketrecekben történhet, hanem kifutók, és akváriumok is tartozhatnak egy-egy faj elhelyezésére szánt területhez. Ezek tetszőleges számban és kombinációban előfordulhatnak elő. Gyakori például, hogy a jegesmedve elhelyezésére szánt terület egy ketrecből, egy száraz kifutóból, valamint még egy kifutóból áll, melyhez már tartozik egy akváriumi rész is.
Töltse le a Teszt.java osztályt, majd egészítse ki egy Faj , egy Kifutó egy Ketrec és egy Akvárium osztállyal, valamint valamint egy absztrakt Élettér osztállyal, az ábrának megfelelően! Minden új osztály csomag-láthatóságú legyen!
Figyeljen arra, hogy az osztályok toString() metódusait úgy írja meg, hogy a példa kimenetben látható formátumban lehessen előállítani ezen osztályok példányainak sztringreprezentációját!
Írja meg a Teszt osztály getLegnagyobbSzárazÉlettér() metódusát úgy, hogy az egy olyan Faj típusú objektumokat tartalmazó listát adjon vissza, amelyben a paraméterként megkapott Faj típusú listában található, egy egyedre jutó legnagyobb száraz (Kifutó és Ketrec ) élettérrel rendelkező állatok szerepelnek. Az inputban egy-egy faj csak egyszer fordul elő.
A Teszt osztályban található main(…) metódust ne módosítsa!
Teszt.java
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner;
/* Your code here */
public class Teszt {
/* Your code here */
public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Faj> fajok = new ArrayList<Faj>();
while (sc.hasNextLine()) { String[] sorTömb = sc.nextLine().split(";"); List<Élettér> életterek = new ArrayList<Élettér>(); for (int i = 2; i < sorTömb.length; i++) { String s = sorTömb[i].substring(1, sorTömb[i].length()); String[] adatok = s.split("-"); if (sorTömb[i].startsWith("A")) { // Akvárium életterek.add(new Akvárium(Integer.parseInt(adatok[0]), Integer.parseInt(adatok[1]))); } else if (sorTömb[i].startsWith("R")) { // Kifutó életterek.add(new Kifutó(Integer.parseInt(adatok[0]), adatok[1])); } else if (sorTömb[i].startsWith("C")) { // Ketrec életterek.add(new Ketrec(Integer.parseInt(adatok[0]), Boolean.parseBoolean(adatok[1]))); } } Faj faj = new Faj(sorTömb[0], Integer.parseInt(sorTömb[1]), életterek); fajok.add(faj); }
Collections.sort(fajok, new Comparator<Faj>() {
@Override public int compare(Faj o1, Faj o2) { return o1.getMegnevezés().compareTo(o2.getMegnevezés()); }
});
for (Faj faj : getLegnagyobbSzárazÉlettér(fajok)) { System.out.println(faj); } } }
letöltés szöveges állományként
Példa bemenet
Oroszlán;5;C30-true;R100-homok Ló;4;R30-föld;R90-homok;C50-true Csirke;12;C12-true Elefánt;4;R120-homok;C50-true
letöltés szöveges állományként
Példa kimenet
Elefánt Ló
letöltés szöveges állományként
|
|