|
Összetevők
Tekintse az alábbi osztálydiagramot!
Töltse le a Teszt.java osztályt, majd egészítse ki egy Élelmiszer , egy Összetevő és AllergénÖsszetevő osztállyal a fenti ábrának megfelelően.
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!
Az Élelmiszer osztályban implementálja az allergenitás() metódust, mely visszaadja egy élelmiszer allergenitását. Azt, hogy mennyire allergén egy élelmiszer úgy kapjuk meg, hogy összeadjuk az egyes allergén összetevők allergenitási szintjeit, és megszorozzuk azzal, hogy hány allergén összetevő található az élelmiszerben.
A Teszt osztályban implementáljon egy legAllergénebb() metótust, mely paraméterül megkap egy élelmiszereket tartalmazó listát és visszaadja a legallergénebb élelmiszereket tartalmazó listát. A listába csak olyan élelmiszerek kerülhetnek bele melyek allergenitása nagyobb, mint 0.
A bemeneten az összetevők mellett n darab * karakter jelöli, hogy mennyire allergén (0 < n <= 3). Ha egy összetevő mellett nem szerepel csillag, akkor nem allergén összetevő.
Teszt.java
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.TreeMap;
/* Your code here */
public class Teszt {
/* Your code here */
public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Élelmiszer> élelmiszerek = new ArrayList<Élelmiszer>(); while (sc.hasNextLine()) { List<Összetevő> összetevőkLista = new ArrayList<Összetevő>(); String[] sorTömb = sc.nextLine().split(";"); String[] összetevőkTömb = sorTömb[2].split(","); for (int i = 0; i < összetevőkTömb.length; i++) { int csillagok = hányCsillagos(összetevőkTömb[i]); if (csillagok == 0) { összetevőkLista.add(new Összetevő(összetevőkTömb[i])); } else { String megnevezés = összetevőkTömb[i].substring(0, összetevőkTömb[i].length() - csillagok); összetevőkLista.add(new AllergénÖsszetevő(megnevezés, csillagok)); } } élelmiszerek.add(new Élelmiszer(sorTömb[0], sorTömb[1], összetevőkLista)); } List<Élelmiszer> legAllergénebbLista = legAllergénebb(élelmiszerek); Collections.sort(legAllergénebbLista, new Comparator<Élelmiszer>() { @Override public int compare(Élelmiszer o1, Élelmiszer o2) { return o1.getMegnevezés().compareTo(o2.getMegnevezés()); }
}); for (Élelmiszer élelmiszer : legAllergénebbLista) { System.out.println(élelmiszer); }
}
private static int hányCsillagos(String összetevő) { if (összetevő.contains("*")) { return összetevő.length() - összetevő.indexOf("*"); } else { return 0; } }
}
letöltés szöveges állományként
Példa bemenet
Kenyér;Pék Kft.;liszt,víz,cukor,só,élesztő Tonhal; FrissFish Kft.;tonhal, só, víz, E621** Májkrém;Hús Kft.; máj, sertésbőrke, szalonna, E621**
letöltés szöveges állományként
Példa kimenet
Májkrém:2 Tonhal:2
letöltés szöveges állományként
|
|