Java LinkedHashMap
Java LinkedHashMap
A LinkedHashMap
stores keys and values, and keeps them in the same order you put them in.
It is part of the java.util
package and implements the Map
interface.
Tip: Use LinkedHashMap
when you want predictable iteration order (insertion order).
Create a LinkedHashMap
Create a LinkedHashMap
object called capitalCities
that will store
String
keys and String
values:
Example
import java.util.LinkedHashMap; // Import the LinkedHashMap class
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
Now you can use methods like put()
to add key/value pairs,
get()
to retrieve a value by key,
and remove()
to delete an entry - all while maintaining insertion order.
Add Items
Use the put()
method to add items to the LinkedHashMap
:
Example
// Import the LinkedHashMap class
import java.util.LinkedHashMap;
public class Main {
public static void main(String[] args) {
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
capitalCities.put("England", "London");
capitalCities.put("India", "New Dehli");
capitalCities.put("Austria", "Wien");
capitalCities.put("Norway", "Oslo");
capitalCities.put("Norway", "Oslo"); // Duplicate
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Output: The items will appear in the order they were added (e.g., {England=London, India=New Dehli, Austria=Wien, Norway=Oslo, USA=Washington DC}).
Note: Duplicates like "Norway" are ignored.
Access an Item
Use get()
with a key to get its associated value:
Remove an Item
Use remove()
to remove an item by key:
Use clear()
to remove all items:
LinkedHashMap Size
Use size()
to check how many key/value pairs are in the map:
Note: The size only counts unique keys. If a key is added more than once, only the latest value is kept.
Loop Through a LinkedHashMap
You can loop through a LinkedHashMap
using a for-each loop. Use:
keySet()
to get all keysvalues()
to get all values
Example
// Print keys
for (String key : capitalCities.keySet()) {
System.out.println(key);
}
Example
// Print values
for (String value : capitalCities.values()) {
System.out.println(value);
}
Example
// Print keys and values
for (String key : capitalCities.keySet()) {
System.out.println("Key: " + key + ", Value: " + capitalCities.get(key));
}
HashMap vs LinkedHashMap
Feature | HashMap |
LinkedHashMap |
---|---|---|
Order | No guaranteed order | Insertion order preserved |
Performance | Faster for random access | Slightly slower due to ordering |
Duplicates | Keys must be unique | Keys must be unique |
Tip: Use LinkedHashMap
when you want the map to remember the order in which entries were added.
The var Keyword
From Java 10, you can use the var
keyword to declare a LinkedHashMap
variable without writing the type twice.
The compiler figures out the type from the value you assign.
This makes code shorter, but many developers still use the full type for clarity.
Since var
is valid Java, you may see it in other code, so it's good to know that it exists:
Example
// Without var
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<String, String>();
// With var
var capitalCities = new LinkedHashMap<String, String>();
The Map Interface
Note: Sometimes you will see both Map
and LinkedHashMap
in Java code, like this:
import java.util.Map;
import java.util.LinkedHashMap;
Map<String, String> capitalCities = new LinkedHashMap<>();
This means the variable (capitalCities) is declared as a Map
(the interface), but it stores a LinkedHashMap
object (the actual map). Since LinkedHashMap
implements the Map
interface, this is possible.
It works the same way, but some developers prefer this style because it gives them more flexibility to change the type later.