Saya mencoba menggunakan 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));
tetapi masalahnya adalah ia tidak boleh berisi lebih dari satu nilai yang sama dalam hal Pembanding, sehingga hanya satu produk yang akan berada di products
set.
Saya memerlukan beberapa implementasi Koleksi, yang akan mengurutkan nilai yang baru dimasukkan, mengizinkan banyak nilai yang sama (dalam hal Pembanding), dan memasukkan kompleksitas log(n) (mungkin impl berbasis pohon)