ฉันพยายามใช้ 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
ฉันต้องการใช้งาน Collection บางอย่าง ซึ่งจะเรียงลำดับค่าที่แทรกใหม่ อนุญาตให้มีค่าเท่ากัน (ในแง่ของตัวเปรียบเทียบ) และมีความซับซ้อนในการแทรก log(n) (อาจเป็นนัยตามต้นไม้)