From 25adb649e3d167f775a84cdb3a8af85dbe963547 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Mon, 14 Apr 2025 10:35:38 -0400 Subject: [PATCH] [Hacker Rank] Interview Preparation Kit: Dictionaries and Hashmaps: Frequency Queries. Clean Code: explicit methods. --- .../FrequencyQueries.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/algorithm-exercises-java/src/main/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueries.java b/algorithm-exercises-java/src/main/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueries.java index 9d6ba06..c4451c5 100644 --- a/algorithm-exercises-java/src/main/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueries.java +++ b/algorithm-exercises-java/src/main/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueries.java @@ -87,13 +87,27 @@ void delete(Long value) { } } + void reset() { + this.result = new ArrayList<>(); + } + + void select(Long value) { + this.result.add(this.freqMap.containsKey(value) ? __FOUND__ : __NOT_FOUND__); + } + + static FrequencyQueries factory() { + FrequencyQueries fq = new FrequencyQueries(); + fq.reset(); + + return fq; + } + /** * FrequencyQueries. */ static List freqQuery(List> queries) { - FrequencyQueries fq = new FrequencyQueries(); - fq.result = new ArrayList<>(); + FrequencyQueries fq = FrequencyQueries.factory(); for (List query : queries) { int operation = query.get(0); @@ -109,7 +123,7 @@ static List freqQuery(List> queries) { break; case __SELECT__: - fq.result.add(fq.freqMap.containsKey(value) ? __FOUND__ : __NOT_FOUND__); + fq.select(value); break; default: throw new IllegalArgumentException(