在java

时间:2018-02-07 08:30:22

标签: java algorithm data-structures

今天我需要在java中为我的需求选择最有效的数据结构。 基本上我的算法有一组<Integer, Object>

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

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

1 个答案:

答案 0 :(得分:0)

您需要NavigableMap,例如TreeMapConcurrentSkipListMap

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

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