我需要存储以下数据;
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& Java中的算法,R。Lafore 和我发现我需要的是Separate Chaining / HashChain
,但是他们使用自己构建的数据结构类来解释它。
我可以在java中使用HashChain的“现成”集合吗?像
这样的东西Map<String, []String> theMap = new HashMap<String, []String>(); //just an example
答案 0 :(得分: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");
答案 1 :(得分:2)
你的问题不是很清楚,所以这个答案可能会被取消。如果要为给定键设置多个值,则应使用MultiMap。 JDK中没有实现,但在公共库中有很多实现,例如Google Guava(包含以前的Google Collections)。
Map<String,List<String>>
等替代方案有效,但使用起来很尴尬,例如如果密钥不存在,你必须自己创建“内部”列表。