Я пытался использовать TreeSet:
Comparator<Product> pc = (p1, p2) -> ((Double) p1.getPrice()).compareTo(p2.getPrice());
Set<Product> products = new TreeSet<>(pc);
products.add(new Product(10));
products.add(new Product(10));
но проблема в том, что он не может содержать более одного равного значения с точки зрения компаратора, поэтому только один продукт будет в наборе products
.
Мне нужна некоторая реализация коллекции, которая упорядочивает вновь вставленное значение, допускает множество равных (с точки зрения компаратора) значений и имеет сложность вставки log(n) (возможно, реализация на основе дерева)