Greetings, fellow Java enthusiast! As we embark on our Java programming journey today, we will get up close and personal with a mighty helpful companion—HashMap
. Whether organizing a cookbook, tallying votes, or tracking inventory, HashMap
comes to the rescue, providing a way to handle pairs of data efficiently. Let's explore how HashMap
can transform complex tasks into straightforward ones through practical examples.
Consider this: you have an extensive text — perhaps a short story or a section of a report — and want to analyze word usage. How many times does each word appear? This isn't just about curiosity; such a tool benefits writers aiming for diverse vocabulary.
Visualize yourself tasked with developing a feature for a text editor that gives feedback on word usage. A writer could use this feature to refine their work, ensuring they use only certain words.
Consider iterating over the text word by word, keeping track of each instance in a list. This approach might work for a short sentence, but imagine scaling it up to an entire book! It becomes inefficient as you repeatedly wade through a growing list for each word you encounter.
This is where HashMap
shines like a knight in shining armor. With its getOrDefault
function, HashMap
allows for swift updates. Instead of a laborious search for each word, a HashMap
can check and update the count in a constant time — a massive time-saver!
Let's break down the code step by step:
HashMap
called wordCount
to store words and their frequencies.split
method around each space, we split the text into words.HashMap
using the getOrDefault
method, which fetches the current count and adds one. If the key is not in the HashMap, it creates the key and assigns it a value of 0.Here's how our Java crusader does it:
Java1import java.util.HashMap; 2 3class Solution { 4 public static void main(String[] args) { 5 String text = "Java Java Java"; 6 HashMap<String, Integer> wordCount = new HashMap<>(); 7 String[] words = text.split(" "); 8 for (String word : words) { 9 wordCount.put(word, wordCount.getOrDefault(word, 0) + 1); 10 } 11 System.out.println(wordCount); 12 } 13}
Take the sentence "Java Java Java" for example. Our function would create a HashMap
with a single entry: {"Java", 3}. Simple and elegant!
Suppose you're keeping track of inventory. You have items identified by their names and associated with their prices, all stored in a hashmap. How would you compute the total inventory value with minimal fuss?
Consider a situation in a retail store with a diverse product range, each with a unique barcode and price. To calculate the total inventory value, you must efficiently pair each item with its price and tally them up.
HashMap
lays out items and prices on a neat table. It associates each product name (key) with its price (value). Using the values()
method, you can directly access all the prices at once for summation, turning a complex task into a walk in the park.
Given a hashmap of items, we will use the loop to traverse the map's values, adding them together into a sum.
Here's the Java magic:
Java1import java.util.HashMap; 2 3class Solution { 4 public static void main(String[] args) { 5 HashMap<String, Integer> map = new HashMap<>(); 6 7 map.put("a", 10); 8 map.put("b", 6); 9 map.put("c", 12); 10 11 int sum = 0; 12 for (int value : map.values()) { 13 sum += value; 14 } 15 System.out.println(sum); // 28 16 } 17}
Imagine a register ringing up items — "apple: 1, banana: 2, cherry: 3" — our HashMap
would keep a tally, and in the end, the sum would be a quick and accurate total: 6.
Today's foray into HashMap
has prepared you to conquer word counts, sum values, and find unique elements with Java's mighty HashMap
. We've witnessed firsthand the time-saving capabilities of HashMap
operations, such as getOrDefault
, put
, and values()
.
You've absorbed the essence of practical examples, illumining how to operate hashmaps.
As we conclude our lesson, remember that the true test lies in practice. Up next are exercises crafted to hone your newfound HashMap
skills, giving you the confidence to apply this knowledge in real-world scenarios. Embark on the practice exercises with zeal, and continue to nurture your passion for coding in Java.