2011-05-21 52 views
1

我有四個推薦列表,並且可以說列表是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磅 {ITEM2,重80磅 {ITEM5,重80磅

假設重量1 = 10,加權2 = 5,weight3 = 3,重量1 = 2

根據這些列表中的最終列表應該有 「ITEM5」作爲第一項,因爲使用它存在於所有四個列表中。我怎樣才能得到這四個列表的其他最好的建議?

謝謝。

+1

試着弄清楚最終列表應該是什麼,然後描述你在問題中這樣做的所有步驟。 – 2011-05-21 14:54:03

+0

@asThiwanka:您可以通過點擊旁邊的箭頭來點擊答案,並通過點擊綠色的選中標記來接受對問題最有幫助的答案。這有助於組織網站,也是一種感謝幫助你的人的方式。 – hugomg 2011-08-13 15:27:25

回答

0

如果我理解你是對的,這應該有點簡單。在更高層次上,您需要一個數據結構,如

Map<Item, Map<List, Integer>>其中最終整數爲number_of_occurrences。一旦擁有它,可以直接乘以number_of_occurrences *權重並將它與生成的值一起放入TreeMap中(此處也可以使用優先級隊列)

現在,您可以從TreeMap獲得前n列表。