Grobes fertiges Programm
parent
97e70a8a3f
commit
bf029bd7bb
105
Shop/src/Quelle
105
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<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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue