簡體   English   中英

使用什么數據結構?

[英]What data structure to use?

我需要存儲以下數據;

Clampls = {"23e23e", "ff333g", "fhgswq"," h65h3", "ffwwf", "34rf3"}
KJAS3.2 = {"f34f4f", "43rf2d", "3rfas1"," 1122d", "fff42", "ff33f"}
...

我本來想存儲這樣的東西

 Name        Tokens
  .       -> ... , ... , ... , ...
  .       -> ... , ... , ... , ...
Clampls   -> "23e23e" , "ff333g" , "fhgswq" , ... 
KJAS3.2   -> "f34f4f" , "43rf2d" , "3rfas1" , ...  
  .       -> ... , ... , ... , ...
  .       -> ... , ... , ... , ...

所以有點像HashMap。 在R. Lafore的《 Java中的數據結構與算法》一書中做了一些閱讀,發現我需要的是Separate Chaining / HashChain但是他們使用自己構建的數據結構類對其進行了解釋。

我可以在Java中使用HashChain的“現成”集合嗎? 就像是

Map<String, []String> theMap = new HashMap<String, []String>(); //just an example
Map<String, List<String>> dataStructure = new HashMap<String, List<String>>();

dataStructure.put("Clampls", Arrays.asList("23e23e", "ff333g", "fhgswq"," h65h3", "ffwwf", "34rf3"));
dataStructure.put("KJAS3.2", Arrays.asList("f34f4f", "43rf2d", "3rfas1"," 1122d", "fff42", "ff33f"));

dataStructure.put("KJAS3.3", new ArrayList<String>());
dataStructure.get("KJAS3.3").add("fhgswq");

您的問題不是很清楚,因此該答案可能不正確。 如果要給定鍵有多個值,則應使用MultiMap。 JDK中沒有實現,但是在公共庫中有很多實現,例如Google Guava(包含以前的Google Collections)。

諸如Map<String,List<String>>類的替代方法可行,但使用起來很麻煩,例如,如果鍵不存在,則必須自己創建“內部”列表。

暫無
暫無

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

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