插入到hashmap中,计算Set中的重复项?

Mat*_*att 6 java hashmap set

所以据我所知,Java集中不允许重复.为什么然后在这段代码片段中代码似乎试图考虑重复?

public static Subarray findSmallestSubarrayCoveringSet(List<String> paragraph,Set<String> keywords) {

   Map<String, Integer> keywordsToCover = new HashMap<>();
   for (String keyword : keywords) {
      keywordsToCover.put(keyword,
      keywordsToCover.containsKey(keyword)? keywordsToCover.get(keyword) + 1: 1);
   }
Run Code Online (Sandbox Code Playgroud)

为什么不在for循环中使用keywordsToCover.put(keyword,1)?

Ous*_* D. 1

你是对的,这个电话永远keywordsToCover.containsKey(keyword)不会是真的。似乎编写代码的人都不明白 a 的目的是什么,或者他们错误地这样做了(尽管这不太可能)。因此只需调用就足够了。SetkeywordsToCover.put(keyword,1)