基本上我正在寻找java中的最佳数据结构,我可以存储对并按值检索前N个元素。我想在 O(n) 时间内执行此操作,其中 n 是数据结构中的整数数。
示例输入是,
<"john", 32>
<"dave", 3>
<"brian", 15>
<"jenna", 23>
<"rachael", 41>
如果 N=3,如果我想要降序排列,我应该能够返回 rachael、john、jenna。
如果我使用某种 hashMap,插入速度很快,但按顺序检索它们会很昂贵。如果我使用一些保持有序的数据结构,那么插入变得昂贵,而检索更便宜。我无法找到既能做得很好又能很快做的最好的数据结构。
任何意见表示赞赏。谢谢。
[更新]
让我以其他方式问这个问题是否更清楚。我知道我可以在恒定时间 O(1) 插入 hashMap。现在,我如何在 O(n) 时间内按值从排序顺序中检索元素,其中 n=数据结构中的整数个数?希望这是有道理的。