Java数据结构保存大多数购买的书籍
假设有一个图书网站,其中大多数购买的图书都需要向用户推荐。 我们怎样才能推荐最近买的书 我的解决方案是使用Java数据结构保存大多数购买的书籍,java,data-structures,heap,Java,Data Structures,Heap,假设有一个图书网站,其中大多数购买的图书都需要向用户推荐。 我们怎样才能推荐最近买的书 我的解决方案是使用PriorityQueue作为最小堆来保留大多数k条目,如果大小增加,则poll一个条目 是否有内置的java数据结构来执行此操作?不需要这种修剪逻辑。大多数购买的图书和最近购买的图书是不同的策略。树映射,键作为图书id,值作为图书对象。然后,您可以实现一个比较器,根据售出的图书数量进行排序。@Compass:它保留了数据结构中的大部分内容,如果是平局,它会删除旧条目。@HarshalPar
PriorityQueue
作为最小堆来保留大多数k
条目,如果大小增加,则poll
一个条目
是否有内置的java数据结构来执行此操作?不需要这种修剪逻辑。大多数购买的图书和最近购买的图书是不同的策略。树映射,键作为图书id,值作为图书对象。然后,您可以实现一个比较器,根据售出的图书数量进行排序。@Compass:它保留了数据结构中的大部分内容,如果是平局,它会删除旧条目。@HarshalParekh:
TreeMap
我相信也是无界的。LinkedHashMap具有构造函数参数访问顺序。如果您创建的映射的访问顺序为true,如果您在映射上执行get或put方法,则条目将移动到映射的末尾。您可以像这样存储它,并从中获取最后的元素大多数购买的书籍和最近购买的书籍是不同的策略。树映射,键作为书籍id,值作为书籍对象。然后,您可以实现一个比较器,根据售出的图书数量进行排序。@Compass:它保留了数据结构中的大部分内容,如果是平局,它会删除旧条目。@HarshalParekh:TreeMap
我相信也是无界的。LinkedHashMap具有构造函数参数访问顺序。如果您创建的映射的访问顺序为true,如果您在映射上执行get或put方法,则条目将移动到映射的末尾。您可以像这样存储它并从中获取最后的元素