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)**.
|
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;
|
package pack;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Bestellungen {
|
public class Bestellungen {
|
||||||
String kundenName;
|
String kundenName;
|
||||||
String Addresse;
|
String Addresse;
|
||||||
Warenkorb warenkorb;
|
Warenkorb wk;
|
||||||
String Kaufdatum;
|
ArrayList<WarenkorbArtikel> warenkorb=wk.ÜbertrageArtikel() ;
|
||||||
double Preis;
|
double Bruttopreis=0;
|
||||||
double versandkosten;
|
double versandkosten;
|
||||||
String Zahlmethode;
|
|
||||||
boolean bestellungBestätigt;
|
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 {
|
public class OnlineShop {
|
||||||
private static ArrayList<String> LagerList;
|
private static ArrayList<String> LagerList;
|
||||||
Warenkorb wk =new Warenkorb();
|
Warenkorb wk =new Warenkorb();
|
||||||
|
ArrayList<WarenkorbArtikel> Artikel= wk.ÜbertrageArtikel();
|
||||||
|
|
||||||
public String [][] Start() throws FileNotFoundException {
|
public String [][] Start() throws FileNotFoundException {
|
||||||
LagerList=readFile();
|
LagerList=readFile();
|
||||||
|
|
@ -102,4 +102,16 @@ public class OnlineShop {
|
||||||
return null;
|
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;
|
int ID;
|
||||||
double Gewicht;
|
double Gewicht;
|
||||||
int Bestand;
|
int Bestand;
|
||||||
|
double bruttopreis;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Produkt(int ID,String name, double Gewicht, double preis,double mwst, int Bestand) {
|
public Produkt(int ID,String name, double Gewicht, double preis,double mwst, int Bestand) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.preis = preis;
|
this.preis =preis ;
|
||||||
this.mwst= mwst;
|
this.mwst= mwst;
|
||||||
this.Gewicht=Gewicht;
|
this.Gewicht=Gewicht;
|
||||||
this.Bestand=Bestand;
|
this.Bestand=Bestand;
|
||||||
this.ID=ID;
|
this.ID=ID;
|
||||||
|
this.bruttopreis=berechneBrutto();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,30 @@ package pack;
|
||||||
public class WarenkorbArtikel {
|
public class WarenkorbArtikel {
|
||||||
Produkt produkt;
|
Produkt produkt;
|
||||||
int Menge;
|
int Menge;
|
||||||
|
double neuPreis;
|
||||||
|
double gesamtGewicht;
|
||||||
|
|
||||||
public WarenkorbArtikel(Produkt produkt, int Menge) {
|
public WarenkorbArtikel(Produkt produkt, int Menge) {
|
||||||
this.produkt = produkt;
|
this.produkt = produkt;
|
||||||
this.Menge = Menge;
|
this.Menge = Menge;
|
||||||
|
this.neuPreis=berechneGesamtPreis();
|
||||||
|
this.gesamtGewicht=berechneGesamtPreis();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
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(){
|
public double berechneGesamtPreis(){
|
||||||
double preis= produkt.preis*Menge;
|
if(Menge!=0){
|
||||||
return preis;
|
neuPreis= produkt.bruttopreis*Menge ;}
|
||||||
|
else
|
||||||
|
neuPreis=0;
|
||||||
|
return neuPreis;
|
||||||
}
|
}
|
||||||
public double berechneGesamtGewicht(){
|
public double berechneGesamtGewicht(){
|
||||||
|
if(Menge==0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
double gewicht= produkt.Gewicht*Menge;
|
double gewicht= produkt.Gewicht*Menge;
|
||||||
return gewicht;
|
return gewicht;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,20 @@ public class ShopTUI {
|
||||||
|
|
||||||
}
|
}
|
||||||
public void bestellen(){
|
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 {
|
public void MeinWarenkorb() throws FileNotFoundException {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue