|
Hegycsúcsok és vulkánok
Tanulmányozza át az alábbi UML ábrát!
A Hegycsúcs osztály különféle országok hegycsúcsainak nyilvántartására alkalmas. Bizonyos Hegycsúcsok Vulkánok: utóbbiak valamikor a múltban már kitörtek.
Töltse le a Teszt.java fájlt, majd egészítse ki a kódját a Hegycsúcs osztállyal, valamint a Vulkán osztállyal az ábrának megfelelően! Mindkét új osztály csomag-láthatóságú legyen!
Figyeljen arra, hogy a Hegycsúcs és a Vulkán osztályok toString() metódusait úgy írja meg, hogy segítségükkel a példa kimenetben látható formátumban lehessen előállítani ezen osztályok példányainak a sztringreprezentációját!
Írja meg a Teszt osztály getLegalacsonyabbHegycsúcsok metódusát úgy, hogy az egy olyan Hegycsúcs típusú objektumokat tartalmazó listát adjon vissza, amely a paraméterként megkapott Hegycsúcs típusú listában található legalacsonyabb (legkisebb magasságú) hegycsúcsokat tartalmazza!
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; import java.util.stream.Collectors;
public class Teszt {
public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Hegycsúcs> lista = new ArrayList<>(); while (sc.hasNextLine()) { String[] sorTomb = sc.nextLine().split(";"); if (sorTomb.length == 3) lista.add(new Hegycsúcs(sorTomb[0], Integer .parseInt(sorTomb[1]), sorTomb[2])); else if (sorTomb.length == 4) { Scanner vulkánInfo = new Scanner(sorTomb[3]); vulkánInfo.next(); // erupted vulkánInfo.next(); // in int kitörésÉve = vulkánInfo.nextInt(); lista.add(new Vulkán(sorTomb[0], Integer.parseInt(sorTomb[1]), sorTomb[2], kitörésÉve)); } }
List<Hegycsúcs> alacsonyak = getLegalacsonyabbHegycsúcsok(lista); Collections.sort(alacsonyak, new Comparator<Hegycsúcs>() {
@Override public int compare(Hegycsúcs h1, Hegycsúcs h2) { return h1.getNév().compareTo(h2.getNév()); } }); for (Hegycsúcs h : alacsonyak) { System.out.println(h); }
} }
letöltés szöveges állományként
Példa bemenet
Makalu;8463;NEP Pinatubo;1486;PHL;erupted in 1991 Tar-ko;950;HUN Annapurna;8091;NEP Istallos-ko;958;HUN Legyendi-galya;936;HUN Buszkes-hegy;952;HUN Sisapangma;8027;CHN Stromboli;936;ITA;erupted in 2015 Galya-teto;964;HUN
letöltés szöveges állományként
Példa kimenet
Legyendi-galya (936 m), HUN Stromboli (936 m), ITA, kitörés éve: 2015
letöltés szöveges állományként
|
|