Inserting into hashmap, accounting for duplicates in Set?

Matt :

So to my knowledge duplicates are not allowed in a Java set. Why then in this code snippet does the code seem to try to take account of duplicates?

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);
   }

Why not just have keywordsToCover.put(keyword,1) inside the for loop?

Ousmane D. :

You're correct here, the call keywordsToCover.containsKey(keyword) would never be true. It just seems that whoever wrote the code didn't understand what is the purpose of a Set or they have mistakenly done so (though that's unlikely). thus just the call keywordsToCover.put(keyword,1) would suffice.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=470140&siteId=1