我正在研究程序,正在考虑哪种数据结构最合适。
我有以下课程-
public class item{
String name;
int value;
public item(String name, int value){
this.value = value;
this.name = name;
}
}
我有两种情况-
要存储大量项目并在添加新项目和更新旧项目的值的同时检索前n个项目。
要存储所有项目并检索前n个项目,而无需添加任何新项目或更新旧项目。
我正在尝试使两种情况的时间都达到最佳。
我曾考虑过将所有项目存储在地图中以按名称进行搜索,并以maxheap的形式存储,然后从顶部删除n个项目,将其存储,然后将它们添加回堆栈中。
我已经将优先级队列和二进制搜索树作为选项,它们中的哪一个更合适?还是其他适合这些情况的结构?
答案 0 :(得分:0)
如果名称是唯一的,则可以使用IDictionary。这种用途相当快