因此,据我所知,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);
   }

为什么不只在for循环中包含keywordToCover.put(keyword,1)?

最佳答案

您在这里是正确的,调用keywordsToCover.containsKey(keyword)永远不会正确。看起来,无论是谁编写的代码,都不知道Set的目的是什么,或者他们错误地做到了(尽管这不太可能)。因此仅调用keywordsToCover.put(keyword,1)就足够了。

09-04 07:53