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
No related branches found
No related tags found
No related merge requests found
Pipeline #62143 passed
package fi.utu.tech.ooj.exercise0;
import java.util.ArrayList;
import java.io.PrintStream;
import java.util.List;
public class KirjaKokoelma {
private String kokoelmanOmistaja;
private ArrayList<Kirja> kirjaListaus;
public KirjaKokoelma(String kokoelmanOmistaja, ArrayList<Kirja> kirjaListaus) {
public KirjaKokoelma(String kokoelmanOmistaja) {
this.kokoelmanOmistaja = kokoelmanOmistaja;
this.kirjaListaus = kirjaListaus;
this.kirjaListaus = new ArrayList<>();
}
public String getKokoelmanOmistaja() {
......@@ -27,4 +28,34 @@ public class KirjaKokoelma {
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;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import static fi.utu.tech.ooj.exercise0.KirjanTiedot.NIMI;
public class Main {
......@@ -23,7 +24,6 @@ public class Main {
}
vastaukset.add(vastaus);
}
System.out.println(vastaukset);
return vastaukset;
}
/*
......@@ -34,35 +34,27 @@ public class Main {
public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
String[] kysyttäväOmistaja = {"Omistaja"};
String omistaja = kysyTietoja(kysyttäväOmistaja, "/loppu").toString();
ArrayList kirjalista = new ArrayList<>();
KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja);
while (true) {
String[] kirjantiedot = {"Kirjan nimi: ", "Kirjailijan nimi: ", "Julkaisuvuosi:"};
ArrayList<String> kirjanTiedot = kysyTietoja(kirjantiedot, lopetusmerkki);
if (kirjanTiedot.contains(lopetusmerkki) || kirjanTiedot.size() < 3) {
if (kirjanTiedot.size() < 3) {
break;
}
String kirjanNimi = kirjanTiedot.get(0);
String kirjailijanNimi = kirjanTiedot.get(1);
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);
Kirja kirja = new Kirja(kirjanTiedot.get(0), kirjanTiedot.get(1), Integer.valueOf(kirjanTiedot.get(2)));
kokoelma.lisaaKirja(kirja);
}
KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja,kirjalista);
System.out.println(kokoelma);
return kokoelma;
}
public static void main(String[] args) {
//Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
KirjaKokoelma kokoelma = luoKokoelma("/loppu");
//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
//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 to comment