使用循环Java创建多个HashSet

Eri*_*rie 1 java for-loop hashset

我正在尝试编写将使用for循环创建多个HashSet的代码.我试图根据它们的长度存储唯一单词的出现次数.例如,长度为4的单词将出现在HashSet A中,而长度为20的单词将出现在HashSet B中.而不是手动创建16个HashSet,有没有办法让我使用for循环(int i=4; i<21; i++)?谢谢!

Roh*_*ain 8

HashSet你可以拥有一个,而不是16个不同的Map<Integer, Set<String>>.

因此,在添加时,您可以只测试a key是否已经存在.如果有密钥,只需将该字添加到该Set密钥,否则添加新条目.

那么,这是您需要遵循的步骤: -

  • 得到这个词的长度.说length.
  • 测试是否Map包含密钥length-Map#containsKey(Object)

  • 如果有length密钥,请获取该Set密钥 - Map#get(Object).并添加wordSet.

  • 如果length没有key,请创建一个new HashSet,在其中添加当前单词.并Map以当前长度作为关键字添加新条目-Map#put(K, V)