我有四个建议列表,让我们说列表是A,B,C,D。 每个列表具有相同数量的项目,并表示为键值对。但我需要为列表A的元素提供比列表B更多的优先级(权重),依此类推。最终,我需要从最终推荐的四个列表中选择最佳项目集。
以下是一个用例:
List_A: {ITEM1,重量1} {ITEM2,重量1} {项目3,重量1} {ITEM4,重量1} {ITEM5,重量1}
List_B: {item8,重量2} {ITEM5,重量2} {item7,重量2} {ITEM2,重量2} {ITEM6,重量2}
List_C: {第11项,weight3} {item23,weight3} {item34,weight3} {item24,weight3} {ITEM5,weight3}
List_D: {item9,重80磅 {item7,重80磅 {项目3,重80磅 {项目2,重80磅 {ITEM5,重80磅
假设weight1 = 10,weight2 = 5,weight3 = 3,weight1 = 2
根据这些列表,最终列表应该将“item5”作为第一项,因为它存在于所有四个列表中。如何获得这四个列表的其他最佳建议?
感谢。
答案 0 :(得分:0)
如果我理解你的话,这应该有点简单。在更高级别,您需要一个数据结构
Map<Item, Map<List, Integer>>
,其中最后一个整数是number_of_occurrences。一旦你有了它,就可以直接将number_of_occurrences *权重相乘并将其与TreeMap中的生成值一起抛出(此处也可以使用优先级队列)
现在你可以拥有TreeMap的前n个列表。