Skip to content
Snippets Groups Projects
Commit 6ef0e32b authored by Lauri Heinonen's avatar Lauri Heinonen :skull:
Browse files

Tehtävä 6 ja 7 done

parent a16145a7
Branches main
No related tags found
No related merge requests found
Pipeline #62143 passed
package fi.utu.tech.ooj.exercise0; package fi.utu.tech.ooj.exercise0;
import java.util.ArrayList; import java.util.ArrayList;
import java.io.PrintStream;
import java.util.List;
public class KirjaKokoelma { public class KirjaKokoelma {
private String kokoelmanOmistaja; private String kokoelmanOmistaja;
private ArrayList<Kirja> kirjaListaus; private ArrayList<Kirja> kirjaListaus;
public KirjaKokoelma(String kokoelmanOmistaja, ArrayList<Kirja> kirjaListaus) { public KirjaKokoelma(String kokoelmanOmistaja) {
this.kokoelmanOmistaja = kokoelmanOmistaja; this.kokoelmanOmistaja = kokoelmanOmistaja;
this.kirjaListaus = kirjaListaus; this.kirjaListaus = new ArrayList<>();
} }
public String getKokoelmanOmistaja() { public String getKokoelmanOmistaja() {
...@@ -27,4 +28,34 @@ public class KirjaKokoelma { ...@@ -27,4 +28,34 @@ public class KirjaKokoelma {
this.kirjaListaus.add(kirja); this.kirjaListaus.add(kirja);
} }
public void tulostaKokoelma(PrintStream out) {
if (this.kirjaListaus.isEmpty()) {
out.println("Kokoelma on tyhjä");
} else {
for (Kirja kirja : kirjaListaus) {
out.println(kirja);
}
}
}
public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException {
if (hakusana == null || hakusana.isEmpty() || kentta == null) {
throw new IllegalArgumentException("Hakusana ja kenttä eivät saa olla tyhjä merkkijono");
}
List<Kirja> hakutulokset = new ArrayList<>();
for (Kirja kirja : kirjaListaus) {
String kentanSisalto = switch (kentta) {
case NIMI -> kirja.getKirjanNimi();
case KIRJAILIJA -> kirja.getKirjailijanNimi();
case JULKAISUVUOSI -> String.valueOf(kirja.getJulkaisuVuosi());
};
if (kentanSisalto.toLowerCase().contains(hakusana.toLowerCase())) {
hakutulokset.add(kirja);
}
}
return hakutulokset;
}
} }
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import static fi.utu.tech.ooj.exercise0.KirjanTiedot.NIMI;
public class Main { public class Main {
...@@ -23,7 +24,6 @@ public class Main { ...@@ -23,7 +24,6 @@ public class Main {
} }
vastaukset.add(vastaus); vastaukset.add(vastaus);
} }
System.out.println(vastaukset);
return vastaukset; return vastaukset;
} }
/* /*
...@@ -34,35 +34,27 @@ public class Main { ...@@ -34,35 +34,27 @@ public class Main {
public static KirjaKokoelma luoKokoelma(String lopetusmerkki) { public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
String[] kysyttäväOmistaja = {"Omistaja"}; String[] kysyttäväOmistaja = {"Omistaja"};
String omistaja = kysyTietoja(kysyttäväOmistaja, "/loppu").toString(); String omistaja = kysyTietoja(kysyttäväOmistaja, "/loppu").toString();
ArrayList kirjalista = new ArrayList<>(); KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja);
while (true) { while (true) {
String[] kirjantiedot = {"Kirjan nimi: ", "Kirjailijan nimi: ", "Julkaisuvuosi:"}; String[] kirjantiedot = {"Kirjan nimi: ", "Kirjailijan nimi: ", "Julkaisuvuosi:"};
ArrayList<String> kirjanTiedot = kysyTietoja(kirjantiedot, lopetusmerkki); ArrayList<String> kirjanTiedot = kysyTietoja(kirjantiedot, lopetusmerkki);
if (kirjanTiedot.contains(lopetusmerkki) || kirjanTiedot.size() < 3) { if (kirjanTiedot.size() < 3) {
break; break;
} }
String kirjanNimi = kirjanTiedot.get(0); Kirja kirja = new Kirja(kirjanTiedot.get(0), kirjanTiedot.get(1), Integer.valueOf(kirjanTiedot.get(2)));
String kirjailijanNimi = kirjanTiedot.get(1); kokoelma.lisaaKirja(kirja);
int julkaisuVuosi = Integer.parseInt(kirjanTiedot.get(2));
System.out.println(julkaisuVuosi);
Kirja kirja = new Kirja(kirjanNimi, kirjailijanNimi, julkaisuVuosi);
kirjalista.add(kirja);
System.out.println(kirja);
System.out.println(kirja);
} }
KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja,kirjalista);
System.out.println(kokoelma);
return kokoelma; return kokoelma;
} }
public static void main(String[] args) { public static void main(String[] args) {
//Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia //Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
KirjaKokoelma kokoelma = luoKokoelma("/loppu"); KirjaKokoelma kokoelma = luoKokoelma("/loppu");
//Sen jälkeen tulosta kokoelma näyttöön käyttämällä tehtävän 6 rutiinia //Sen jälkeen tulosta kokoelma näyttöön käyttämällä tehtävän 6 rutiinia
kokoelma.tulostaKokoelma(System.out);
//Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia //Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia
//Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa. //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
System.out.println(kokoelma.etsiKirjat("erkki",NIMI));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment