Я пытаюсь составить список, в котором я бы добавил элементы в свою корзину покупок, после чего он покажет, сколько вхождений предметов есть с помощью HashMap.Подсчет Число вхождений элемента в список
public class ShoppingCart
{
private ArrayList<Items> ShoppingCart;
public ShoppingCart()
{
ShoppingCart = new ArrayList<Items>();
}
public void addItems(Items newItems)
{
ShoppingCart.add(newItems);
}
public ArrayList<Items> getShoppingCart()
{
return ShoppingCart;
}
public void CheckOut()
{
for(int i = 0; i < ShoppingCart.size(); i++)
{
HashMap<String, Integer> itemsMap = new HashMap<String, Integer>();
int a = 1;
if (itemsMap.containsKey(ShoppingCart.get(i).getName()))
{
itemsMap.replace(ShoppingCart.get(i).getName(), a, a++);
}
else
{
itemsMap.put(ShoppingCart.get(i).getName(), a);
}
System.out.println(a +"x "+ShoppingCart.get(i));
}
}
и мои пункты созданы с
public class Items
{
private String name;
public Items (String name)
{
this.name = name;
}
public String toString()
{
return name;
}
public String getName()
{
return name;
}
}
В основном я хотел бы создать товары и добавить их в корзину, а затем ShoppingCart.CheckOut(); мои предметы.
Однако, если добавить 4 "Белый хлеб", как это так,
Items bread = new Items("White Bread");
ShoppingCart ShoppingCart = new ShoppingCart();
ShoppingCart.addItems(bread);
ShoppingCart.addItems(bread);
ShoppingCart.addItems(bread);
ShoppingCart.addItems(bread);
я
1x White Bread
1x White Bread
1x White Bread
1x White Bread
вместо
4x White Bread
Что я делаю не так?
использование '++ a' вместо 'a ++' –
Спасибо всем! Я также заметил, что я печатаю в цикле, который дал мне несколько бесполезных выходов, поэтому я тоже изменил это. Я также решил обменять операторы if и else, но изменив условие if на «нет». Также было изменено на LinkedHashMap, чтобы он был более организованным. – Jinjinbug
Вы также, вероятно, выиграете от того, что ваш ShoppingCart рассмотрит на http://codereview.stackexchange.com, так как есть некоторые проблемы. – hcvst