我正在尝试编写将使用 for 循环创建多个 HashSet 的代码。我正在尝试根据长度存储唯一单词的出现。例如,长度为 4 的单词将放入 HashSet A,而长度为 20 的单词将放入 HashSet B。有没有办法让我使用 for 循环 (int i=4; i<21; i++)
而不是手动创建 16 个 HashSet? ?谢谢!
最佳答案
而不是有 16 个不同的 HashSet
的,你可以有一个Map<Integer, Set<String>>
.
因此,在添加时,您可以只测试是否有一个 key
是否已经存在。如果有 key ,只需将单词添加到 Set
对于那个键,否则添加一个新条目。
因此,这是您需要遵循的步骤:-
- 获取单词的长度。说
length
. 测试是否
Map
包含键length
-Map#containsKey(Object)
如果
length
key 在那里,得到Set
对于那个 key -Map#get(Object)
.并添加word
那个Set
.- 如果
length
key 不存在,创建一个新的HashSet
, 在其中添加当前单词。并在您的Map
中添加一个新条目以当前长度为键 -Map#put(K, V)
关于java - 使用循环Java制作多个HashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14483236/