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.
 
     
     
     
     
    