有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从多个推荐列表中提取顶级推荐

我有四个建议列表,假设列表是A、B、C、D。 每个列表都有相同数量的项,并表示为键值对。但是我需要为列表A的元素赋予比列表B更多的优先级(权重),以此类推。最终,我需要从四个列表中选择一组最佳的项目作为最终推荐

下面是一个用例:

清单A: {item1,weight1} {item2,weight1} {item3,weight1} {item4,weight1} {item5,weight1}

清单B: {item8,weight2} {item5,weight2} {item7,weight2} {item2,weight2} {item6,weight2}

列表C: {item11,weight3} {item23,weight3} {item34,weight3} {item24,weight3} {item5,weight3}

清单D: {第9项,第4项 {第7项,第4项 {第3项,第4项 {第2项,第4项 {第5项,第4项

假设权重1=10,权重2=5,权重3=3,权重1=2

根据这些列表,最终列表的第一项应该是“item5”,因为它存在于所有四个列表中。如何获得这四个列表的其他最佳建议

谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果我没弄错的话,这应该有点简单。在更高的层次上,您需要一个数据结构作为

    Map<Item, Map<List, Integer>>其中最后一个整数是出现的次数。一旦有了它,就可以直接将出现次数乘以权重,并将其与生成的值一起放入树形图中(这里也可以使用优先级队列)

    现在,您可以从树状图中获得前n名列表