对于这些情况最合适的数据结构是什么?

时间:2019-01-29 11:17:04

标签: data-structures binary-search-tree priority-queue heapsort

我正在研究程序,正在考虑哪种数据结构最合适。

我有以下课程-

public class item{ 
    String name;
    int value;

    public item(String name, int value){
        this.value = value;
        this.name = name;
    }
}

我有两种情况-

要存储大量项目并在添加新项目和更新旧项目的值的同时检索前n个项目。

要存储所有项目并检索前n个项目,而无需添加任何新项目或更新旧项目。

我正在尝试使两种情况的时间都达到最佳。

我曾考虑过将所有项目存储在地图中以按名称进行搜索,并以maxheap的形式存储,然后从顶部删除n个项目,将其存储,然后将它们添加回堆栈中。

我已经将优先级队列和二进制搜索树作为选项,它们中的哪一个更合适?还是其他适合这些情况的结构?

1 个答案:

答案 0 :(得分:0)

如果名称是唯一的,则可以使用IDictionary。这种用途相当快