java - 在 Java 中为我的算法选择正确的数据结构

标签 java algorithm data-structures

今天我需要选择最有效的数据结构来满足我在 Java 中的需求。 基本上我有一个算法有一组 <Integer, Object> .

  • 首先多个线程创建这个集合的一些,然后它们被合并, 按整数排序并删除最终重复的对象 结果集。
  • 比对每个元素 x <Integer, Object> 我需要 获取Integer小于x.Integer的y个元素

由于第二点与算法相关,您会选择在 Java 中使用哪种数据结构?

最佳答案

你想要一个 NavigableMap 比如 TreeMap 或者 ConcurrentSkipListMap

注意:TreeMap 不是线程安全的,但是如果您在 TreeMap 的本地副本中为每个线程收集数据并在完成时合并结果,则可能会更高效。也就是说,您可以减少竞争。

注2:您只需要一个TreeMap 来执行小于 比较。进一步的改进可能是使用 HashMap 来收集每个线程中的数据,并将结果合并到 TreeMap 中以执行搜索。

关于java - 在 Java 中为我的算法选择正确的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659115/

相关文章:

java - Android 中如何验证用户输入?

java - 无法在名称为 'forward:/index.html' 的 servlet 中解析名称为 'dispatcherServlet' 的 View

java - Athena 从 parquet 模式创建表

python - 将记忆化应用于硬币兑换问题

c++ - 矩阵比较算法

java - 无响应的 HTTP 处理程序

algorithm - 按升序对 "d.mm"和 "dd.mm"日期进行排序

data-structures - 多键查找数据结构

为用户创建基于复古成就的网站的Mysql数据库设计

c - 'rooms' 之前的预期说明符限定符列表