Java Hashmap
Java Hashmap
- A map contains values on the basis of key i.e. key and value pair.
- Each key and value pair is known as an entry. Map contains only unique keys.
- Map is useful if you have to search, update or delete elements on the basis of key.
Syntax of HashMap with Generic
Map<Integer,String> map=new HashMap<Integer,String>();
Example:
package Mypkg; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; import java.util.Set; public class MAPex { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub HashMap map=new HashMap(); //Adding elements to map map.put(1,"Neo"); map.put(3,"Rahul"); map.put(28,"Jai"); map.put(31,"Amit"); System.out.println("***********************"); System.out.println("Map Representation :"); System.out.println(map.toString()); System.out.println("***********************"); System.out.println( "Value against Key- 28->" + map.get(28)); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); System.out.println("Map elements are"); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+" -> "+entry.getValue()); } } }
Output:
***********************
Map Representation :
{1=Neo, 3=Rahul, 28=Jai, 31=Amit}
***********************
Value against Key- 28->Jai
Map elements are
1 -> Neo
3 -> Rahul
28 -> Jai
31 -> Amit
Click Here-> Get Prepared for Java Interviews
Method Name | Description |
void clear() | It is used to remove all elements from map. |
boolean isEmpty() | It is used to return true if this map contains no key-value mappings. |
Object clone() | It is used to return a shallow copy of this HashMap instance: the keys and values themselves are not cloned. |
Set entrySet() | It is used to return a collection view of the mappings contained in this map. |
Set keySet() | It is used to return a set view of the keys contained in this map. |
V put(Object key, Object value) | It is used to insert an entry in the map. |
void putAll(Map map) | It is used to insert the specified map in the map. |
V putIfAbsent(K key, V value) | It inserts the specified value with the specified key in the map only if it is not already specified. |
V remove(Object key) | It is used to delete an entry for the specified key. |
boolean remove(Object key, Object value) | It removes the specified values with the associated specified keys from the map. |
V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | It is used to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping). |
V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) | It is used to compute its value using the given mapping function, if the specified key is not already associated with a value (or is mapped to null), and enters it into this map unless null. |
V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | It is used to compute a new mapping given the key and its current mapped value if the value for the specified key is present and non-null. |
boolean containsValue(Object value) | This method returns true if some value equal to the value exists within the map, else return false. |
boolean containsKey(Object key) | This method returns true if some key equal to the key exists within the map, else return false. |
boolean equals(Object o) | It is used to compare the specified Object with the Map. |
void forEach(BiConsumer<? super K,? super V> action) | It performs the given action for each entry in the map until all entries have been processed or the action throws an exception. |
V get(Object key) | This method returns the object that contains the value associated with the key. |
V getOrDefault(Object key, V defaultValue) | It returns the value to which the specified key is mapped, or defaultValue if the map contains no mapping for the key. |
boolean isEmpty() | This method returns true if the map is empty; returns false if it contains at least one key. |
V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) | If the specified key is not already associated with a value or is associated with null, associates it with the given non-null value. |
V replace(K key, V value) | It replaces the specified value for a specified key. |
boolean replace(K key, V oldValue, V newValue) | It replaces the old value with the new value for a specified key. |
void replaceAll(BiFunction<? super K,? super V,? extends V> function) | It replaces each entry’s value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception. |
Collection values() | It returns a collection view of the values contained in the map. |
int size() | This method returns the number of entries in the map. |
Hash Table Vs HashMap
HashMap | Hashtable |
non synchronized. It is not-thread safe and can’t be shared between many threads without proper synchronization code. | synchronized. It is thread-safe and can be shared with many threads. |
allows one null key and multiple null values. | doesn’t allow any null key or value. |
faster. | Slower. |
HashMap is traversed by Iterator. | Hashtable is traversed by Enumerator and Iterator. |
Iterator in HashMap is fail-fast. | Enumerator in Hashtable is not fail-fast. |
HashMap inherits AbstractMap class. | Hashtable inherits Dictionary class. |
Click Here-> Get Java Training with Real-time Projects