1

我需要存储以下数据;

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。我在我的书Data Structures & Algorithms in Java, R. Lafore 中做了一些阅读,我发现了我需要的东西,Separate Chaining / HashChain但是他们使用自己构建的数据结构类来解释它。

是否有我可以在 java 中使用的 HashChain 的“现成”集合?就像是

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

2 回答 2

6
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");
于 2010-11-15T08:11:58.393 回答
2

你的问题不是很清楚,所以这个答案可能会被关闭。如果您希望给定键有多个值,则应使用 MultiMap。JDK 中没有实现,但其中有很多在公共库中,例如 Google Guava(包含以前的 Google Collections)。

Alternatives like Map<String,List<String>> work, but are awkward to use, e.g. you have to create the "inner" List yourself if a key doesn't exist.

于 2010-11-15T08:14:38.227 回答