0
A
回答
1
根据您的分数使您的结构实现Comparable,并使用地图按键存储实例,并使用SortedSet按分数排序实例。
2
您需要两个集合/数据结构。 我建议使用自定义对象:
public class GiveMeANamePlease implements Comparable<GiveMeANamePlease>{
private final String key;
private final float score;
// add constructor, getter, compareTo, equals and hashcode
}
你可以使用一个HashMap<String, GiveMeANamePlease>
通过键来执行查找和TreeSet<GiveMeANamePlease>
按分数排序。
可以弹出的最低元素在TreeSet中是这样的:
treeSet.remove(treeSet.first());
这是不是很大,因为它需要一个双查找(效率低下,不是线程安全的)。
提示:如果你只是想弹出最低,这将是更有效地存储在Min-Heap比分,但没有标准的Java实现这一点。
0
在我的知识中没有单一的具有这种管理能力的集合类型。
对于存储我会使用一个地图。对于最低/最高分数,我会得到地图的EntrySet并使用它创建第二个按照值排序条目的Collection。
相关问题
- 1. Solr查询返回按'查找集合'排序的结果
- 2. 按键值排序阵列
- 3. 按值和键排序
- 4. 按值排序数组键
- 5. 排序按值字典然后按键
- 6. C++设置如何按值排序集和按键搜索
- 7. AppSettings按值查找键
- 8. 按值查找对象键
- 9. 按键排序
- 10. 按数组顺序排序集合
- 11. Groovy:按值排序散列键值
- 12. 复合列键与复合排按键
- 13. 合并表没有按键排序
- 14. 按时间戳排序汇总集合
- 15. C#集合 - 按元素排序(旋转)
- 16. 按ID查找mongo子集合
- 17. 按键的值排序数组
- 18. PHP的foreach按键/值排序
- 19. 按值排序字典然后键
- 20. 按键和值排序字典?
- 21. 按键值对数组排序
- 22. 如何按键排序地图值?
- 23. 如何按值排序字典的键?
- 24. 数组排序按关键字值
- 25. 按数值排序的NSDictionary键
- 26. 按键/值按字母顺序排序列表
- 27. 按预定加载值排序集
- 28. 按值查找redis键zset - laravel
- 29. 按值查找列表的关键字
- 30. 使用linq按深度级/实体字段按集合排序
仅解决其中一个要求 –
请参阅我的编辑。 – Andres