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(