簡體   English   中英

哪種類型的數據結構最好?

[英]which type of data structure is best?

在我的申請中,我們已經有了

Map<String, List<String>>

現在我們得到了另一個用例,需要找到一個映射到列表中特定字符串的鍵。

我正在考慮寫下面的內容:

string getKey(Map<String, List<String>> m, String str) {
  for (Entry<String, List<String>> entry :m.entrySet()) {
    if(entry.getValue().contains(str)) {
      retrun entry.getKey();
    }
  }
  return null;
}

Map最多可以有2000個條目。 並且每個List最多可以包含500個String

任何可能更合適的建議? 如果有更好的方法,我也可以更改初始數據結構( Map )。

我建議您添加另一個給出反向映射的映射 - 從字符串到鍵列表。 這將需要更多的工作來與第一張地圖保持同步,但會為您的任務提供最佳性能。

仍然,如果您認為此類查詢的頻率會相對較低,則也許您的解決方案可能會更好(盡管速度較慢,但​​為使兩個地圖保持同步而節省的時間將彌補這一點)。

你熟悉Guava API嗎? 如果您可以自由添加/更改依賴項,那么絕對值得一試,特別是Multimap接口的實現。 它是為可以將同一鍵映射到多個值的情況而專門構建的。

如果我誤解了這個問題,並且同一鍵不會被映射到多個值,那么您可能需要重新格式化/重新考慮您的問題,因為您當前的想法Map<String, List<String>>本質上就是這樣。

暫無
暫無

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

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