เรามีคอลเลกชันของวัตถุ แต่ละวัตถุมีรหัสจำนวนเต็มและการประทับเวลา เราต้องการที่จะค้นหารายการที่ซ้ำกันและอัปเดตคอลเลกชันตาม ID
แต่เรายังต้องการที่จะสามารถ "แบ่งส่วน" ของคอลเลกชันได้ เช่น การค้นหาวัตถุทุกชิ้นที่มีการประทับเวลาหลังจากเวลาที่กำหนด ดังนั้นเราจึงต้องการเรียงลำดับการประทับเวลาด้วย
เรากำลังใช้ TreeMap ซึ่งในตอนแรกดูเหมือนจะให้สิ่งที่เราต้องการแก่เรา แต่เนื่องจาก TreeMap (และทุกอย่างที่ได้มาจาก SortedSet) ใช้เพียง comparisonTo() และละเว้นเมธอดเท่ากับ () เราจึงพบว่าการค้นหารายการที่ซ้ำกันตาม ID ไม่ได้ผล เมธอด CompareTo() ของเราพยายามอนุญาตทั้งสองเงื่อนไข (ค้นหาด้วย ID หรือการประทับเวลา) แต่สุดท้ายแล้วมันก็มีขนาดใหญ่และน่าเกลียดและไม่สามารถใช้งานได้จริง :)
คอลเลกชันนี้อาจขยายใหญ่ขึ้นได้ ดังนั้นแน่นอนว่าเราต้องการการค้นหา / การเรียงลำดับ / การแทรกอย่างรวดเร็วที่สุด