Hej.
Witam wszystkich.
Piszę kod do testu obsługi sklepu internetowego.
Dodaje radomowo produkty do koszyka itd.
Nie potrafię przejść przez jedną rzecz.
Mianowicie, kiedy wykonuję kilka zamówień chcę aby w przypadku kilkukrotnego zamówienia tego samego produktu, ten nie powielał mi się na liście w której przechowuję zamówienia, ale aby jedynie zaktualizowała mi się jego ilość. Obecnie bez przerwy, niezależnie jakbym zmodyfikował swój kod, wyświetla mi się nie np Pepsi 2 , Chleb 1, Jabłko 1 ale Pepsi 1, Chleb 1, Jabłko 1, Pepsi 1.
Próbowałem ze zwyczajnymi instrukcjami warunkowymi a teraz próbuję ze streamem.
Klasa CartConsistence
to klasa z zaimplementowanym project builderem.
public static List<CartConsistence> cartConsistenceList = new ArrayList<>();
public static void addToCartConsistenceList(String cName, double cPrice, int cQuantity){
Stream<CartConsistence> stream = cartConsistenceList.stream();
if(cartConsistenceList.stream().filter(e->e.getName().equals(cName))) {
stream.filter(e -> e.getName().equals(cName))
.findFirst().ifPresent(e->e.setQuantity(cQuantity + e.getQuantity()));
}else {
cartConsistenceList.add(new CartConsistence(new CartConsistence.Builder()
.buildName(cName).buildPrice(cPrice).buildQuantity(cQuantity)));
}
}