diff --git a/Java Sets/src/ProductCatalogue.java b/Java Sets/src/ProductCatalogue.java new file mode 100644 index 0000000..9e55948 --- /dev/null +++ b/Java Sets/src/ProductCatalogue.java @@ -0,0 +1,20 @@ +import common.Product; +import common.Supplier; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +public class ProductCatalogue implements Iterable { + private final Set products = new HashSet<>(); + + public void addSupplier(final Supplier supplier) { + + products.addAll(supplier.getProducts()); + } + + @Override + public Iterator iterator() { + return products.iterator(); + } +} diff --git a/Java Sets/src/WeightAwareProductCatalogue.java b/Java Sets/src/WeightAwareProductCatalogue.java new file mode 100644 index 0000000..79bc8ed --- /dev/null +++ b/Java Sets/src/WeightAwareProductCatalogue.java @@ -0,0 +1,28 @@ +import common.Product; +import common.Supplier; + +import java.util.Iterator; +import java.util.NavigableSet; +import java.util.Set; +import java.util.TreeSet; + +public class WeightAwareProductCatalogue implements Iterable { + private final NavigableSet products = + new TreeSet<>(Product.BY_WEIGHT); + + public void addSupplier(final Supplier supplier) { + + products.addAll(supplier.getProducts()); + } + + public Set findLighterProducts(final Product product) { + + return products.headSet(product, false); + } + + @Override + public Iterator iterator() { + + return products.iterator(); + } +}