Java 使用什么数据结构?

Java 使用什么数据结构?,java,data-structures,linked-list,hashmap,chaining,Java,Data Structures,Linked List,Hashmap,Chaining,我需要存储以下数据 Clampls = {"23e23e", "ff333g", "fhgswq"," h65h3", "ffwwf", "34rf3"} KJAS3.2 = {"f34f4f", "43rf2d", "3rfas1"," 1122d", "fff42", "ff33f"} ... 我想把它储存在这样的地方 Name Tokens . -> ... , ... , ... , ... . -> ... , ... ,

我需要存储以下数据

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。我在我的书《Java中的数据结构和算法》中读了一些书,R.Lafore发现了我需要的是
独立链接/HashChain
,但是他们使用自己构建的数据结构类来解释它

是否有可以在java中使用的HashChain的“现成”集合?差不多

Map<String, []String> theMap = new HashMap<String, []String>(); //just an example
Map theMap=newhashmap()//只是一个例子
Map dataStructure=newhashmap();
数据结构.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”,新的ArrayList());
数据结构.get(“KJAS3.3”).add(“fhgswq”);
Map dataStructure=newhashmap();
数据结构.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”,新的ArrayList());
数据结构.get(“KJAS3.3”).add(“fhgswq”);

您的问题不太清楚,因此此答案可能不正确。如果要为给定的键设置多个值,则应使用多重映射。JDK中没有实现,但在常见的libs中有很多实现,例如GoogleGuava(包含以前的GoogleCollections)


Map
这样的备选方案可行,但使用起来很麻烦,例如,如果一个键不存在,你必须自己创建“内部”列表。

你的问题不是很清楚,所以这个答案可能会被关闭。如果要为给定的键设置多个值,则应使用多重映射。JDK中没有实现,但在常见的libs中有很多实现,例如GoogleGuava(包含以前的GoogleCollections)


Map
这样的替代方法很有效,但使用起来很麻烦,例如,如果一个键不存在,你必须自己创建“内部”列表。

为另一个库添加一个新的依赖项并记住另一个API以避免
Map
,真的值得吗?@Andreas\D,我会说是的。番石榴是一个很棒的图书馆,从长远来看,多重地图收藏将为他节省时间。@Andreas:这要看情况。项目越大,就越有可能再次需要此功能或此库中的其他功能。尤其是番石榴含有很多有用的东西。别忘了自己动手的方法也有一些问题(性能、细微的错误可能会被忽略、复杂的“API”)是否真的值得向另一个库添加一个新的依赖项并记住另一个API以避免
Map
?@Andreas\u D,我会说是的。番石榴是一个很棒的图书馆,从长远来看,多重地图收藏将为他节省时间。@Andreas:这要看情况。项目越大,就越有可能再次需要此功能或此库中的其他功能。尤其是番石榴含有很多有用的东西。别忘了自己动手的方法也有一些问题(性能、细微错误可能被忽略、复杂的“API”)
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");