From bf029bd7bbc878bd197ec6edee12d719b80df829 Mon Sep 17 00:00:00 2001 From: Laura <3016748@stud.hs-mannheim.de> Date: Mon, 15 Dec 2025 02:16:58 +0100 Subject: [PATCH] Grobes fertiges Programm --- Shop/src/Quelle | 105 ++++++++++++++++++ .../main/java/backend/pack/Bestellungen.java | 58 +++++++++- .../main/java/backend/pack/OnlineShop.java | 14 ++- Shop/src/main/java/backend/pack/Produkt.java | 4 +- .../java/backend/pack/WarenkorbArtikel.java | 16 ++- Shop/src/main/java/tui/pack/ShopTUI.java | 15 ++- 6 files changed, 202 insertions(+), 10 deletions(-) diff --git a/Shop/src/Quelle b/Shop/src/Quelle index 4be81d0..4962ec2 100644 --- a/Shop/src/Quelle +++ b/Shop/src/Quelle @@ -124,4 +124,109 @@ ich habe eine ArrayListe bestehen hierraus:public class WarenkorbArtikel { Wenn du willst, erkläre ich dir **warum `toString()` so wichtig ist**, oder wie man das **formatiert (Tabellen, Preise summieren, Gesamtpreis berechnen)**. +(2) +Meine Frage --> +wie lösche ich eine Arrayliste +Chatgpts Antwort --> +In Java gibt es mehrere **saubere und zielgerichtete Möglichkeiten**, eine `ArrayList` zu löschen bzw. zu leeren. Welche korrekt ist, hängt davon ab, **was genau gelöscht werden soll**. + +--- + +## 1. Gesamte `ArrayList` leeren (Inhalt entfernen, Objekt behalten) + +```java +ArrayList liste = new ArrayList<>(); +liste.clear(); +``` + +**Wirkung:** + +* Alle Elemente werden entfernt +* Die `ArrayList` selbst bleibt bestehen +* Größe danach: `0` + +**Empfehlung:** +Dies ist die **Standardlösung**, wenn die Liste weiterverwendet werden soll. + +--- + +## 2. Einzelnes Element löschen + +### a) Nach Index + +```java +liste.remove(2); // entfernt Element an Index 2 +``` + +### b) Nach Objektwert + +```java +liste.remove("Apfel"); +``` + +**Hinweis:** + +* `remove(Object)` entfernt **nur das erste Vorkommen** +* Gibt `true` zurück, wenn ein Element entfernt wurde + +--- + +## 3. Mehrere Elemente auf einmal löschen + +```java +liste.removeAll(andereListe); +``` + +Oder alles löschen (funktional identisch zu `clear()`): + +```java +liste.removeAll(liste); +``` + +--- + +## 4. ArrayList vollständig „löschen“ (Referenz entfernen) + +```java +liste = null; +``` + +**Wirkung:** + +* Die Referenz zeigt auf kein Objekt mehr +* Das Objekt wird später vom **Garbage Collector** entfernt +* **Nicht mehr verwendbar**, sonst `NullPointerException` + +**Nur sinnvoll**, wenn die Liste endgültig nicht mehr gebraucht wird. + +--- + +## 5. Bedingtes Löschen (z. B. alle geraden Zahlen) + +```java +liste.removeIf(x -> x % 2 == 0); +``` + +**Ab Java 8 empfohlen** für filterbasierte Löschungen. + +--- + +## Kurzübersicht + +| Ziel | Richtige Methode | +| ----------------------- | ------------------------------------- | +| Alles leeren | `clear()` | +| Ein Element löschen | `remove(index)` oder `remove(objekt)` | +| Mehrere gezielt löschen | `removeAll()` | +| Objekt freigeben | `liste = null` | +| Nach Bedingung löschen | `removeIf()` | + +--- + +Wenn du möchtest, erkläre ich dir auch: + +* den Unterschied zwischen `clear()` und `null` +* typische Fehler (`ConcurrentModificationException`) +* wie das intern (Array + Größe) umgesetzt ist + Sag einfach Bescheid. diff --git a/Shop/src/main/java/backend/pack/Bestellungen.java b/Shop/src/main/java/backend/pack/Bestellungen.java index 61f8fcf..8a186b4 100644 --- a/Shop/src/main/java/backend/pack/Bestellungen.java +++ b/Shop/src/main/java/backend/pack/Bestellungen.java @@ -1,12 +1,62 @@ package pack; +import java.util.ArrayList; + public class Bestellungen { String kundenName; String Addresse; - Warenkorb warenkorb; - String Kaufdatum; - double Preis; + Warenkorb wk; + ArrayList warenkorb=wk.ÜbertrageArtikel() ; + double Bruttopreis=0; double versandkosten; - String Zahlmethode; boolean bestellungBestätigt; + double gesamtPreis; + double gesamtGewicht=0; + double mwstGesamt; // hab die Aufgabe nicht verstanden bzw nicht umsetzten können + + public Bestellungen(String kundenName,String Addresse,ArrayList warenkorb) { + this.kundenName=kundenName; + this.Addresse=Addresse; + this.warenkorb=warenkorb; + this.Bruttopreis=berechnegBruttoPreis(); + this.bestellungBestätigt = true; + this.versandkosten=versandkostenBerechnen(); + this.gesamtPreis=Bruttopreis+versandkosten; + + + } + public String toString(){ + return "Bestellung getätigt von"+ kundenName+" Lieferaddresse: "+Addresse+ " Preis: "+ Bruttopreis+ " zzgl. "+ + versandkosten+ " Versandkosten"; + + + } + public double berechnegBruttoPreis(){ + for(int i=0;i=500){ + return versandkosten=0.0; + } + if(100*berechneGesamtGewicht()<=100){ + return versandkosten=3.95; + } else if (berechneGesamtGewicht()+1000<=1000) { + return 4.95; + + }else if (berechneGesamtGewicht()+1000<=5000) { + return 5.95; + }else + return 19.95; + + } } diff --git a/Shop/src/main/java/backend/pack/OnlineShop.java b/Shop/src/main/java/backend/pack/OnlineShop.java index 4f71b0c..390a347 100644 --- a/Shop/src/main/java/backend/pack/OnlineShop.java +++ b/Shop/src/main/java/backend/pack/OnlineShop.java @@ -10,7 +10,7 @@ import java.util.Scanner; public class OnlineShop { private static ArrayList LagerList; Warenkorb wk =new Warenkorb(); - + ArrayList Artikel= wk.ÜbertrageArtikel(); public String [][] Start() throws FileNotFoundException { LagerList=readFile(); @@ -102,4 +102,16 @@ public class OnlineShop { return null; } + public Bestellungen bestellVorgang(String Name, String Addresse){ + Bestellungen bestellung= new Bestellungen(Name, Addresse, Artikel ); + angepassterBestand(); + Artikel.clear(); //Mit KI (2) + + return bestellung; + } + public void angepassterBestand(){ + for (int i=0;i>"); + String wahl= sc.nextLine(); + if(!wahl.equals("Y")){ + return; + } + IO.println("Bitte geben sie ihre Daten ein"); + IO.print("Name: "); + IO.println(); + String Name= sc.nextLine(); + IO.println("Addresse" ); + String Adresse= sc.nextLine(); + Bestellungen best=shop.bestellVorgang(Name,Adresse); + IO.println(best); } public void MeinWarenkorb() throws FileNotFoundException {