Poradziłem sobie z zadaniem, w dodatku zmieniłem tablicę na listę. Tylko teraz mam inny problem, chciałbym edytować pozycję, czyli(nazwę towaru, cene oraz liczbę sztuk) za pomocą metody void edytujPozycje(int index). Myślałem o metodzie get w linkedlist, ale chyba nie tędy droga. Kod poniżej:
public class Main {
public static void main(String args[]){
Pozycja pozycja1 = new Pozycja("Chleb",2,2);
System.out.println(pozycja1);
Pozycja pozycja2 = new Pozycja("Samochód",100000,1);
System.out.println(pozycja2);
Zamówienie zamówienie1 = new Zamówienie();
zamówienie1.dodajPozycje(pozycja1);
zamówienie1.dodajPozycje(pozycja2);
zamówienie1.usunPozycje(1);
zamówienie1.edytujPozycje(0);
System.out.println(zamówienie1);
}
}
public class Pozycja {
private String nazwaTowaru;
private int ileSztuk;
private double cena;
private double wartosc;
Pozycja(String nazwaTowaru, double cena, int ileSztuk){
this.nazwaTowaru = nazwaTowaru;
this.cena = cena;
this.ileSztuk = ileSztuk;
this.wartosc = ileSztuk*cena;
}
double podajWartosc(){
return wartosc;
}
public String toString(){
String spisPozycji = String.format("%-20s %10szł %4d szt. %10szł \n", nazwaTowaru, cena, ileSztuk, podajWartosc());
return spisPozycji;
}
}
import java.util.List;
import java.util.LinkedList;
public class Zamówienie {
final private List<Pozycja> listapozycji;
Zamówienie(){
listapozycji = new LinkedList<>();
}
void dodajPozycje(Pozycja p){
listapozycji.add(p);
}
double obliczWartosc(){
double suma = 0 ;
for (Pozycja p : listapozycji){
suma += p.podajWartosc();
}
return suma;
}
public String toString(){
System.out.println("Zamówienie: " );
for (Pozycja p : listapozycji) {
System.out.println(p);
}
return "Razem: \n" +obliczWartosc();
}
void usunPozycje(int index){
listapozycji.remove(index);
}
void edytujPozycje(int index){
listapozycji.get(0);
}
}