2017-02-27 104 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 –