Grobes fertiges Programm

main
Laura Kalkbrenner 2025-12-15 02:16:58 +01:00
parent 97e70a8a3f
commit bf029bd7bb
6 changed files with 202 additions and 10 deletions

View File

@ -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<String> 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.

View File

@ -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<WarenkorbArtikel> 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<WarenkorbArtikel> 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<warenkorb.size();i++){
Bruttopreis+= warenkorb.get(i).neuPreis;
}
return Bruttopreis;
}
double berechneGesamtGewicht(){
for(int i=0;i<warenkorb.size();i++){
gesamtGewicht+= warenkorb.get(i).gesamtGewicht;
}return gesamtGewicht;
}
public double versandkostenBerechnen(){
if(berechnegBruttoPreis()>=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;
}
}

View File

@ -10,7 +10,7 @@ import java.util.Scanner;
public class OnlineShop {
private static ArrayList<String> LagerList;
Warenkorb wk =new Warenkorb();
ArrayList<WarenkorbArtikel> 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<Artikel.size();i++){
Artikel.get(i).produkt.Bestand-= Artikel.get(i).Menge;
}
}
}

View File

@ -7,16 +7,18 @@ public class Produkt {
int ID;
double Gewicht;
int Bestand;
double bruttopreis;
public Produkt(int ID,String name, double Gewicht, double preis,double mwst, int Bestand) {
this.name = name;
this.preis = preis;
this.preis =preis ;
this.mwst= mwst;
this.Gewicht=Gewicht;
this.Bestand=Bestand;
this.ID=ID;
this.bruttopreis=berechneBrutto();
}
public String toString() {

View File

@ -3,20 +3,30 @@ package pack;
public class WarenkorbArtikel {
Produkt produkt;
int Menge;
double neuPreis;
double gesamtGewicht;
public WarenkorbArtikel(Produkt produkt, int Menge) {
this.produkt = produkt;
this.Menge = Menge;
this.neuPreis=berechneGesamtPreis();
this.gesamtGewicht=berechneGesamtPreis();
}
@Override
public String toString() {
return "Produkt: " + produkt + ", Menge: " + Menge; //Mit KI siehe (1)
return "Produkt: " + produkt + ", Menge: " + Menge +", Brutto-Preis insgesamt:" +neuPreis; //Mit KI siehe (1)
}
public double berechneGesamtPreis(){
double preis= produkt.preis*Menge;
return preis;
if(Menge!=0){
neuPreis= produkt.bruttopreis*Menge ;}
else
neuPreis=0;
return neuPreis;
}
public double berechneGesamtGewicht(){
if(Menge==0){
return 0;
}
double gewicht= produkt.Gewicht*Menge;
return gewicht;
}

View File

@ -120,7 +120,20 @@ public class ShopTUI {
}
public void bestellen(){
//Hier alle infos wie name und addresse abfangen
IO.println("Sind sie sicher, dass sie zur Kasse wollen? Y/N");
IO.print(">>");
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 {