import java.util.Collections; import java.util.HashSet; import java.util.Set; public class MovingBox { private final Set items; private double volume = 0; private double gewicht = 0; public MovingBox() { this.items = new HashSet<>(); } public MovingBox(Set items) { this.items = new HashSet<>(items); volume = items.stream().mapToDouble(MoveItem::volume).sum(); gewicht = items.stream().mapToDouble(MoveItem::weight).sum(); } public boolean addItem(MoveItem item) { if (items.add(item)) { volume += item.volume(); gewicht += item.weight(); return true; } return false; } public boolean removeItem(MoveItem item) { if (items.remove(item)) { volume -= item.volume(); gewicht -= item.weight(); return true; } return false; } public double volume() { return volume; } public double gewicht() { return gewicht; } public Set items() { return Collections.unmodifiableSet(items); } @Override public String toString() { return "VerhuisDoos [items=" + items + "]"; } }