package cdlKata;
import java.util.HashMap;
import java.util.Map;
class Item2 {
private String s;
public Item2(String s) { this.s = s; }
public String getS() { return s; }
}
class Basket2 {
private Map<Item2, Integer> items;
public Basket2() { items = new HashMap<>(); }
public Map<Item2, Integer> getItems() { return items; }
public void addItemToBasket(Item2 item) {
items.put(item, items.getOrDefault(item,0) + 1);
}
public void printBasket() {
items.entrySet().forEach(e->{ System.out.println(e.getKey().getS() + " " + e.getValue());});
}
}
public class Main2 {
public static void main(String[] args) {
Basket2 basket;
basket = new Basket2();
basket.addItemToBasket(new Item2("A"));
basket.addItemToBasket(new Item2("A"));
basket.printBasket();
}
}
Result is :
A 1
A 1
with basket size = 2. What I want is :
A 2
with basket size 1.
if I turn Item2 into a String I got no issue. Don't understans why it is not working.