Update
parent
de0b00d4ae
commit
d7ebd00706
|
@ -1,54 +0,0 @@
|
||||||
public ArrayList<String> medienart(String medienart, HashMap<String,Mediumverwalter> medien) {
|
|
||||||
switch(medienart) {
|
|
||||||
case "Bücher":
|
|
||||||
return medien.entrySet().stream()
|
|
||||||
.filter(t -> t.getValue().getMedium() instanceof Buch)
|
|
||||||
.map(t -> t.getValue().getMedium())
|
|
||||||
.map(t -> ((Buch)t))
|
|
||||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
|
|
||||||
case "Brettspiele":
|
|
||||||
return medien.entrySet().stream()
|
|
||||||
.filter(t -> t.getValue().getMedium() instanceof Brettspiel)
|
|
||||||
.map(t -> t.getValue().getMedium())
|
|
||||||
.map(t -> ((Brettspiel)t))
|
|
||||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
|
|
||||||
case "Dvds":
|
|
||||||
return medien.entrySet().stream()
|
|
||||||
.filter(t -> t.getValue().getMedium() instanceof Dvd)
|
|
||||||
.map(t -> t.getValue().getMedium())
|
|
||||||
.map(t -> ((Dvd)t))
|
|
||||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
|
|
||||||
case "Cds":
|
|
||||||
return medien.entrySet().stream()
|
|
||||||
.filter(t -> t.getValue().getMedium() instanceof Cd)
|
|
||||||
.map(t -> t.getValue().getMedium())
|
|
||||||
.map(t -> ((Cd)t))
|
|
||||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
|
|
||||||
case "Videospiele":
|
|
||||||
return medien.entrySet().stream()
|
|
||||||
.filter(t -> t.getValue().getMedium() instanceof Videospiel)
|
|
||||||
.map(t -> t.getValue().getMedium())
|
|
||||||
.map(t -> ((Videospiel)t))
|
|
||||||
.map(t -> "Eindutige Kennung= " + t.toString())
|
|
||||||
.collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
kann man das Code igrendwoie zusammenfassung??
|
|
||||||
|
|
||||||
|
|
||||||
Antwort:
|
|
||||||
a, dein Code kann stark vereinfacht und zusammengefasst werden, indem du redundante Codeblöcke vermeidest. Alle case-Blöcke folgen demselben Muster. Du kannst die Class-Objekte (wie Buch.class, Brettspiel.class, etc.) als Parameter verwenden, um den Vergleich dynamisch zu gestalten.
|
|
||||||
|
|
||||||
Hier ist die überarbeitete und zusammengefasste Version:
|
|
||||||
Zusammenfassung des Codes
|
|
|
@ -1,29 +0,0 @@
|
||||||
private Benutzer findBenutzer(int kartennummer) {
|
|
||||||
alleBibBenutzer.stream()
|
|
||||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
wie kann ich hier Benutzer mit Stream zurückgeben?
|
|
||||||
|
|
||||||
Antwort:
|
|
||||||
Um in der Methode findBenutzer den Benutzer mit der angegebenen Kartennummer zurückzugeben,
|
|
||||||
kannst du den stream()-Ansatz verwenden und das Ergebnis filtern.
|
|
||||||
Schließlich kannst du mit findFirst() das erste (und in diesem Fall das einzige) Element des Streams
|
|
||||||
abrufen, das die Bedingung erfüllt. Wenn kein Benutzer mit dieser Kartennummer vorhanden ist, könnte findFirst() ein Optional-Objekt ohne Wert zurückgeben.
|
|
||||||
|
|
||||||
Hier ist die angepasste Methode:
|
|
||||||
private Benutzer findBenutzer(int kartennummer) {
|
|
||||||
return alleBibBenutzer.stream()
|
|
||||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null); // Gibt null zurück, falls kein Benutzer mit der Kartennummer gefunden wurde
|
|
||||||
}
|
|
||||||
|
|
||||||
Erklärung der Anpassung
|
|
||||||
stream(): Wandelt die ArrayList in einen Stream um.
|
|
||||||
filter(...): Filtert den Stream nach Benutzern, deren Kartennummer mit der gesuchten übereinstimmt.
|
|
||||||
findFirst(): Nimmt das erste Element des Streams, das die Filterbedingung erfüllt.
|
|
||||||
orElse(null): Gibt null zurück, falls kein Benutzer gefunden wurde.
|
|
|
@ -1,30 +0,0 @@
|
||||||
was macht die zeile long überfälligeTage = ausgelieheneMedium.getAusleiheEnde().until(heutigesDatum, ChronoUnit.DAYS);
|
|
||||||
|
|
||||||
führt eine Berechnung durch, die die Anzahl der Tage zwischen dem Ausleihende-Datum (getAusleiheEnde()) und dem heutigen Datum (heutigesDatum) bestimmt.
|
|
||||||
|
|
||||||
Funktionsweise:
|
|
||||||
getAusleiheEnde(): Diese Methode liefert das Datum, an dem die Ausleihe enden sollte. Es wird davon ausgegangen, dass es ein LocalDate-Objekt zurückgibt.
|
|
||||||
|
|
||||||
.until(heutigesDatum, ChronoUnit.DAYS): Diese Methode berechnet die Anzahl der Tage von getAusleiheEnde() bis heutigesDatum (heutiges Datum).
|
|
||||||
|
|
||||||
Wenn heutigesDatum nach getAusleiheEnde() liegt, ist das Ergebnis positiv und gibt die Anzahl der Tage an, die das Medium überfällig ist.
|
|
||||||
Wenn heutigesDatum vor getAusleiheEnde() liegt, ist das Ergebnis negativ, da die Ausleihe noch nicht beendet ist.
|
|
||||||
Bedeutung des Ergebnisses:
|
|
||||||
Positiver Wert: Die Ausleihe ist um die berechneten Tage überfällig.
|
|
||||||
Null: Das heutige Datum ist das gleiche wie das Ende-Datum der Ausleihe.
|
|
||||||
Negativer Wert: Die Ausleihe läuft noch, und das Medium ist in |überfälligeTage| Tagen fällig.
|
|
||||||
Beispiel:
|
|
||||||
Angenommen, heutigesDatum = 2024-11-19 und getAusleiheEnde() = 2024-11-15:
|
|
||||||
|
|
||||||
Differenz = 2024-11-15.until(2024-11-19, ChronoUnit.DAYS) = 4
|
|
||||||
Das Medium ist 4 Tage überfällig.
|
|
||||||
Wenn stattdessen getAusleiheEnde() = 2024-11-22:
|
|
||||||
|
|
||||||
Differenz = 2024-11-22.until(2024-11-19, ChronoUnit.DAYS) = -3
|
|
||||||
Das Medium ist in 3 Tagen fällig.
|
|
||||||
Anwendung:
|
|
||||||
Die Variable überfälligeTage kann genutzt werden, um Logik zu implementieren wie:
|
|
||||||
|
|
||||||
Zusätzliche Gebühren für überfällige Medien.
|
|
||||||
Erinnerungen für Nutzer bei bevorstehenden Fälligkeiten.
|
|
||||||
Filtern von Ausleihen, die überfällig oder bald fällig sind.
|
|
Loading…
Reference in New Issue