簡體   English   中英

在Java中為我的算法選擇正確的數據結構

[英]Choose the right data structure for my algorithm in java

今天,我需要為我在Java中的需求選擇最有效的數據結構。 基本上我有一個算法,它具有一組<Integer, Object>

  • 首先,多個線程創建了該集合中的一部分,然后將它們合並,按Integer排序並在結果集中刪除了最終的重復Object。
  • 對於每個元素x <Integer, Object>我需要獲取Integer小於x.Integer的y元素。

由於第二點與算法有關,因此您選擇在Java中使用哪種數據結構?

您需要一個NavigableMap例如TreeMapConcurrentSkipListMap

注意: TreeMap不是線程安全的,但是如果您在TreeMap的本地副本中收集每個線程的數據並在完成后合並結果,則可能會更有效。 也就是說,您可以降低競爭。

注意2:您只需要一個TreeMap執行less than比較。 進一步的改進可能是使用HashMap收集每個線程中的數據,然后將結果合並到TreeMap以執行搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM