Alap feladat megoldása, és 2 részfeladat
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,12 @@
|
||||
Az állatok megnevezés: Gorilla, életkor: 9 év, súly: 100.5 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
|
||||
Az állatok megnevezés: Majom, életkor: 8 év, súly: 90.5 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
|
||||
Az állatok megnevezés: Zebra, életkor: 7 év, súly: 300.0 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
|
||||
Az állatok megnevezés: Hiéna, életkor: 6 év, súly: 70.0 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
|
||||
Az állatok megnevezés: Panda, életkor: 12 év, súly: 120.0 kg, lakrész: FUVES_RESZ, Élettér: Bambuszerdő
|
||||
Az állatok megnevezés: Farkas, életkor: 8 év, súly: 80.0 kg, lakrész: FUVES_RESZ, Élettér: Erdő
|
||||
Az állatok megnevezés: Bagoly, életkor: 5 év, súly: 2.3 kg, lakrész: MADARHAZ, szárnyfesztáv: 120 cm
|
||||
Az állatok megnevezés: Flamingó, életkor: 6 év, súly: 3.5 kg, lakrész: MADARHAZ, szárnyfesztáv: 160 cm
|
||||
Az állatok megnevezés: Varjú, életkor: 4 év, súly: 1.1 kg, lakrész: MADARHAZ, szárnyfesztáv: 80 cm
|
||||
Az állatok megnevezés: Kakadu, életkor: 6 év, súly: 1.0 kg, lakrész: MADARHAZ, szárnyfesztáv: 60 cm
|
||||
Az állatok megnevezés: Boa, életkor: 7 év, súly: 20.0 kg, lakrész: MEDENCE, Pikkelyes: igen
|
||||
Az állatok megnevezés: Iguána, életkor: 5 év, súly: 3.0 kg, lakrész: FUVES_RESZ, Pikkelyes: nem
|
||||
|
@ -5,8 +5,13 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
enum Lakresz {
|
||||
FUVES_RESZ, HOMOK, MEDENCE, MADARHAZ, HULLOHAZ
|
||||
FUVES_RESZ,
|
||||
HOMOK,
|
||||
MEDENCE,
|
||||
MADARHAZ,
|
||||
HULLOHAZ
|
||||
}
|
||||
|
||||
abstract class Allat {
|
||||
@ -56,14 +61,14 @@ abstract class Allat {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Megnevezés: " + megnevezes + ", Életkor: " + eletkor + " év, Súly: " + suly + " kg, Lakrész: " + lakresz;
|
||||
return "Az állatok megnevezés: " + megnevezes + ", életkor: " + eletkor + " év, súly: " + suly + " kg, lakrész: " + lakresz;
|
||||
}
|
||||
}
|
||||
|
||||
class Emlo extends Allat {
|
||||
class Emlos extends Allat {
|
||||
private String eletter;
|
||||
|
||||
public Emlo(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) {
|
||||
public Emlos(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) {
|
||||
super(megnevezes, eletkor, suly, lakresz);
|
||||
this.eletter = eletter;
|
||||
}
|
||||
@ -100,7 +105,7 @@ class Madar extends Allat {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + ", Szárnyfesztáv: " + szarnyfesztav + " cm";
|
||||
return super.toString() + ", szárnyfesztáv: " + szarnyfesztav + " cm";
|
||||
}
|
||||
}
|
||||
|
||||
@ -187,26 +192,37 @@ class Allatkert {
|
||||
}
|
||||
|
||||
public void listazAllatokat() {
|
||||
for (int i = 0; i < allatok.size(); i++) {
|
||||
System.out.println((i + 1) + ". " + allatok.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
public int getAdottTipusuAllatokSzama(Class<?> tipus) {
|
||||
return (int) allatok.stream().filter(tipus::isInstance).count();
|
||||
}
|
||||
|
||||
public void listazTipusokSzerint() {
|
||||
System.out.println("\n\t[+2] Az állatok típusonkénti kilistázása súly szerint csökkenő sorrendben'\n");
|
||||
allatok.stream()
|
||||
.sorted(Comparator.comparingDouble(Allat::getSuly).reversed())
|
||||
.collect(Collectors.groupingBy(Allat::getClass))
|
||||
.forEach((tipus, lista) -> {
|
||||
System.out.println("Típus: " + tipus.getSimpleName());
|
||||
lista.forEach(System.out::println);
|
||||
List<Allat> rendezettLista = lista.stream()
|
||||
.sorted(Comparator.comparingDouble(Allat::getSuly).reversed())
|
||||
.collect(Collectors.toList());
|
||||
for (int i = 0; i < rendezettLista.size(); i++) {
|
||||
Allat allat = rendezettLista.get(i);
|
||||
System.out.println((i + 1) + ". " + allat);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public int getAdottTipusuAllatokSzama(Class<?> tipus) {
|
||||
List<Allat> adottTipusuAllatok = allatok.stream()
|
||||
.filter(tipus::isInstance)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
System.out.println("Típus: " + tipus.getSimpleName());
|
||||
for (int i = 0; i < adottTipusuAllatok.size(); i++) {
|
||||
System.out.println((i + 1) + ". " + adottTipusuAllatok.get(i));
|
||||
}
|
||||
|
||||
return adottTipusuAllatok.size();
|
||||
}
|
||||
|
||||
public void irjFajlba(String fileNev) {
|
||||
System.out.println("\n\t[+3] Minden olyan állatnév kiírása fájlba, ami legalább 4 éves, és a nevébe van 'a' betű.\n");
|
||||
try (FileWriter writer = new FileWriter(fileNev)) {
|
||||
for (Allat allat : allatok) {
|
||||
if (allat.getMegnevezes().contains("a") && allat.getEletkor() >= 4) {
|
||||
@ -224,25 +240,64 @@ public class Main {
|
||||
public static void main(String[] args) {
|
||||
Allatkert allatkert = new Allatkert("Fővárosi Állatkert", "Budapest, Állatkerti krt. 6-12.", "123-4567", "info@allatkert.hu");
|
||||
|
||||
// Példányosítás
|
||||
allatkert.hozzaadAllat(new Emlo("Oroszlán", 5, 190.5, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
// állatok betöltése
|
||||
allatkert.hozzaadAllat(new Emlos("Oroszlán", 5, 190.5, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Gorilla", 9, 100.5, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Majom", 8, 90.5, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Gepárd", 6, 80.5, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Tigris", 4, 210.0, Lakresz.FUVES_RESZ, "Dzsungel"));
|
||||
allatkert.hozzaadAllat(new Emlos("Elefánt", 15, 5400.0, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Zebra", 7, 300.0, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Hiéna", 6, 70.0, Lakresz.FUVES_RESZ, "Szavanna"));
|
||||
allatkert.hozzaadAllat(new Emlos("Panda", 12, 120.0, Lakresz.FUVES_RESZ, "Bambuszerdő"));
|
||||
allatkert.hozzaadAllat(new Emlos("Farkas", 8, 80.0, Lakresz.FUVES_RESZ, "Erdő"));
|
||||
|
||||
allatkert.hozzaadAllat(new Madar("Sas", 3, 4.0, Lakresz.MADARHAZ, 220));
|
||||
allatkert.hozzaadAllat(new Hullo("Krokodil", 12, 400.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Rovar("Bogár", 1, 0.6, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Madar("Papagáj", 2, 0.9, Lakresz.MADARHAZ, 50));
|
||||
allatkert.hozzaadAllat(new Madar("Bagoly", 5, 2.3, Lakresz.MADARHAZ, 120));
|
||||
allatkert.hozzaadAllat(new Madar("Flamingó", 6, 3.5, Lakresz.MADARHAZ, 160));
|
||||
allatkert.hozzaadAllat(new Madar("Varjú", 4, 1.1, Lakresz.MADARHAZ, 80));
|
||||
allatkert.hozzaadAllat(new Madar("Galamb", 2, 0.8, Lakresz.MADARHAZ, 40));
|
||||
allatkert.hozzaadAllat(new Madar("Fecske", 1, 0.3, Lakresz.MADARHAZ, 35));
|
||||
allatkert.hozzaadAllat(new Madar("Kakadu", 6, 1.0, Lakresz.MADARHAZ, 60));
|
||||
|
||||
// Keresés
|
||||
allatkert.hozzaadAllat(new Hullo("Krokodil", 12, 400.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Krokodil", 15, 450.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Krokodil", 10, 380.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Krokodil", 8, 360.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Gyík", 1, 0.2, Lakresz.FUVES_RESZ, false));
|
||||
allatkert.hozzaadAllat(new Hullo("Teknős", 100, 200.0, Lakresz.MEDENCE, false));
|
||||
allatkert.hozzaadAllat(new Hullo("Kaméleon", 3, 0.5, Lakresz.FUVES_RESZ, false));
|
||||
allatkert.hozzaadAllat(new Hullo("Boa", 7, 20.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Viper", 4, 1.5, Lakresz.FUVES_RESZ, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Alligátor", 11, 350.0, Lakresz.MEDENCE, true));
|
||||
allatkert.hozzaadAllat(new Hullo("Iguána", 5, 3.0, Lakresz.FUVES_RESZ, false));
|
||||
allatkert.hozzaadAllat(new Hullo("Kígyó", 9, 25.0, Lakresz.MEDENCE, true));
|
||||
|
||||
allatkert.hozzaadAllat(new Rovar("Nagy bogár", 1, 0.6, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Hangya", 1, 0.01, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Méh", 1, 0.03, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Szöcske", 2, 0.05, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Katicabogár", 1, 0.02, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Pillangó", 1, 0.04, Lakresz.FUVES_RESZ, 6));
|
||||
allatkert.hozzaadAllat(new Rovar("Tücsök", 3, 0.07, Lakresz.FUVES_RESZ, 6));
|
||||
|
||||
// kikeresés
|
||||
System.out.println(allatkert.keres("Oroszlán"));
|
||||
|
||||
// Listázás
|
||||
|
||||
|
||||
// allatok szama
|
||||
// System.out.println("Emlősök száma: " + allatkert.getAdottTipusuAllatokSzama(Emlos.class));
|
||||
// System.out.println("Madarak száma: " + allatkert.getAdottTipusuAllatokSzama(Madar.class));
|
||||
// System.out.println("Hüllők száma: " + allatkert.getAdottTipusuAllatokSzama(Hullo.class));
|
||||
// System.out.println("Rovarok száma: " + allatkert.getAdottTipusuAllatokSzama(Rovar.class));
|
||||
|
||||
|
||||
// kilistázás súly szerint
|
||||
allatkert.listazAllatokat();
|
||||
|
||||
// Típusok szerinti számolás
|
||||
System.out.println("Emlősök száma: " + allatkert.getAdottTipusuAllatokSzama(Emlo.class));
|
||||
|
||||
// Súly szerinti listázás
|
||||
allatkert.listazTipusokSzerint();
|
||||
|
||||
// Fájlba írás
|
||||
// +3 fájlbaírás
|
||||
allatkert.irjFajlba("idosebb_allatok.txt");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user