2017-02-27 94 views
-1

還有「u」個唯一用戶。建議數據結構

「w」數不同的網頁,並有'p'的產品數量。

根據當前用戶和當前網頁,我想在該頁面上爲該用戶宣傳適當的產品。

哪種數據結構適合此要求。

我想

HashMap (User,HashMap(WebPage,Product))

或者

HashMap(WebPage,HashMap(User,Product))

哪個對象必須是外HashMap的關鍵。

用戶,網頁的大小在這裏有什麼影響?

針對這種情況的任何其他適當的數據結構?

謝謝你

+0

你所描述的聽起來更像是'Map ,設置爲>'給我。對於其他問題,您查詢此地圖的順序可能無關緊要,因爲您必須始終查詢兩次,一次是用戶,一次是WebPage。相對性能取決於用戶和頁面之間的散列衝突數量。總的來說,我認爲這或者是主觀的,或者你沒有提供足夠的信息來作出有教育的決定。 –

+0

Map ,Set >。如果我們使用Pair ,那麼將會有u * w個密鑰。這是非常巨大的。它會對HashMap的性能產生什麼影響嗎? – Krishna

+0

是不是有一些信息丟失?就像用戶,頁面和產品之間的關係一樣?你如何知道什麼產品適合向用戶展示?你怎麼知道一個產品是否適合網頁?您沒有給我們足夠的信息來提供建議。 –

回答

1

我認爲你應該使用這樣的東西;

HashMap(User+WebPage,List<Product>)其中User+WebPage可以與用戶&頁字段,或用於用戶&頁面組合一些其他唯一標識符的對象。

+0

假設我們使用User + WebPage作爲關鍵字並將產品用作值。那麼在HashMap中應該有u * w個鍵。存儲大量(鍵值)對會降低HashMap的性能。 – Krishna

+0

如果用戶數量和網頁數量爲n,那麼如果我們採用HashMap(用戶+網頁,產品),那麼我們應該有n * n個鍵值對。 – Krishna

+0

@克里希納哈哈,你是對的,對不起。但事情是,你不能降低HashMap的性能,難道你不知道它是如何實現的?獲得複雜性始終是1 –