从池中选择属性的算法

Posted

技术标签:

【中文标题】从池中选择属性的算法【英文标题】:Algorithm to select a property out of a pool 【发布时间】:2012-03-16 22:23:32 【问题描述】:

我正在编写一个程序来将某个属性添加到列中。基本上,该列中的每个单元格都有一组排序的可能属性,例如:

单元格 1 -> 属性[A,G,F,T,I] 单元格 2 -> 属性 [G,F,B,Y] . . . 我想找到所有单元格最常见的属性,以便我可以将它作为一个整体应用到列中。

不胜感激。 问候

【问题讨论】:

【参考方案1】:

如何维护关注TreeMap(已排序)

TreeMap<String,Integer>

对于您将其所有属性放入地图的每个单元格,如果发生冲突,请增加该属性的引用计数器。

完成后,获取引用值最大的属性。这将是最常见的属性。您可以稍后通过调用ceilingEntry 方法检索至少 NUM_OF_CELLS 共享的属性:

map.ceilingEntry(Integer.valueOf(NUM_OF_CELLS)); 

【讨论】:

非常感谢您的回答,实际上等式中有另一个维度,每个属性都有排名,例如属性 F 排名 90%,属性 A 排名 10%,所以出现 A 的次数超过F 不只是这种情况.. 我希望我很清楚 那么您需要将地图更改为 并且将考虑权重来计算 Double 值(听起来像是一个小改动) 我认为我不同意你的观点,出现次数和重量之间存在差异,我应该跟踪两者 我想你没听懂我的回答。我会详细说明:Double 值的计算不是“出现次数”而是“出现次数”X“权重”。我 100% 确信它会在你的情况下起作用:)(去过那里,做过) 感谢您的详细说明,我已经按照您的建议做了类似的事情,我得到的结果很好。

以上是关于从池中选择属性的算法的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic,根据特定条件从池中抢资源

超时时间已到,但是尚未从池中获取链接

在从池中获取连接之前经过的超时时间

DBCP2 - 何时从池中删除空闲连接

Glassfish RAR5035:从池中销毁资源时出现意外异常

C3P0NativeJdbcExtractor 上的 Connection.close() 关闭连接并将其从池中删除