In previous post, I have talked about what is Java HashMap, It's constructors, It's methods, example on commonly used method of HashMap before Java 8, and traversal or iterate over HashMap
In this post I will discuss about methods of HashMap,
was introduced in Java 8.
Here is the topic that will cover in this post.
HashMap method getOrDefault
package com.walking.techie;
import java.util.HashMap;
public class HashMapGetOrDefaultDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
System.out.println(httpStatus.getOrDefault(429, "Many Requests"));
System.out.println(httpStatus.getOrDefault(420, "Default Message"));
}
}
Output of above program is shown below:
Too Many Requests Default Message
HashMap method forEach
package com.walking.techie;
import java.util.HashMap;
import java.util.function.BiConsumer;
public class HashMapForEachDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
MyBiConsumer action = new MyBiConsumer();
httpStatus.forEach(action);
}
static class MyBiConsumer implements BiConsumer<Integer, String> {
@Override
public void accept(Integer key, String value) {
System.out.println("Key : " + key + " is processed with value : " + value);
}
}
}
Output of above program is shown below:
Key : 422 is processed with value : Unprocessable Entity Key : 424 is processed with value : Failed Dependency Key : 504 is processed with value : Gateway Timeout Key : 409 is processed with value : Conflict Key : 429 is processed with value : Too Many Requests
HashMap method replaceAll
package com.walking.techie;
import java.util.HashMap;
import java.util.function.BiFunction;
public class HashMapReplaceAllDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
MyBiFunction action = new MyBiFunction();
httpStatus.replaceAll(action);
for (Integer code : httpStatus.keySet()) {
System.out.println("Http Status Code : " + code + " Http Message : " + httpStatus.get(code));
}
}
private static class MyBiFunction implements BiFunction<Integer, String, String> {
@Override
public String apply(Integer key, String value) {
return key + "-->" + value;
}
}
}
Output of above program is shown below:
Http Status Code : 422 Http Message : 422-->Unprocessable Entity Http Status Code : 424 Http Message : 424-->Failed Dependency Http Status Code : 504 Http Message : 504-->Gateway Timeout Http Status Code : 409 Http Message : 409-->Conflict Http Status Code : 429 Http Message : 429-->Too Many Requests
HashMap method putIfAbsent
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class HashMapPutIfAbsentDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.putIfAbsent(429, "Dependency failed.");
httpStatus.putIfAbsent(401, "Unauthorized");
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
}
Output of above program is shown below:
Http Status Code : 401 Http Message : Unauthorized Http Status Code : 422 Http Message : Unprocessable Entity Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Too Many Requests
HashMap method remove
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class HashMapRemoveDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.remove(429);
// It will remove from map
httpStatus.remove(422, "Unprocessable Entity");
// It will not remove from map
httpStatus.remove(504, "Gateway time over");
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
}
Output of above program is shown below:
Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict
HashMap method replace
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class HashMapReplaceDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.replace(429, "Many Requests");
httpStatus.replace(504, "Gateway Timeout", "Timeout happened in Gateway");
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
}
Output of above program is shown below:
Http Status Code : 422 Http Message : Unprocessable Entity Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Timeout happened in Gateway Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Many Requests
HashMap method computeIfAbsent
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Function;
public class HashMapComputeIfAbsentDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.computeIfAbsent(401, new MyFunction());
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
private static class MyFunction implements Function<Integer, String> {
@Override
public String apply(Integer integer) {
return "Unauthorized";
}
}
}
Http Status Code : 401 Http Message : Unauthorized Http Status Code : 422 Http Message : Unprocessable Entity Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Too Many Requests
HashMap method computeIfPresent
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.BiFunction;
public class HashMapComputeIfPresentDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.computeIfPresent(424, new MyBiFunction());
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
private static class MyBiFunction implements BiFunction<Integer, String, String> {
@Override
public String apply(Integer key, String value) {
return key + "--->" + value;
}
}
}
Output of above program is shown below:
Http Status Code : 422 Http Message : Unprocessable Entity Http Status Code : 424 Http Message : 424--->Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Too Many Requests
HashMap method compute
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.BiFunction;
public class HashMapComputeDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
httpStatus.compute(422, new MyBiFunction());
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
private static class MyBiFunction implements BiFunction<Integer, String, String> {
@Override
public String apply(Integer key, String value) {
return key + "--->" + value;
}
}
}
Output of above program is shown below:
Http Status Code : 422 Http Message : 422--->Unprocessable Entity Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Too Many Requests
HashMap method merge
package com.walking.techie;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.BiFunction;
public class HashMapMergeDemo {
public static void main(String[] args) {
HashMap<Integer, String> httpStatus = new HashMap<>();
httpStatus.put(424, "Failed Dependency");
httpStatus.put(422, "Unprocessable Entity");
httpStatus.put(429, "Too Many Requests");
httpStatus.put(504, "Gateway Timeout");
httpStatus.put(409, "Conflict");
MyBiFunction myBiFunction = new MyBiFunction();
// key is not present
httpStatus.merge(401, "Unauthorized", myBiFunction);
// key is present
httpStatus.merge(429, "So many requests", myBiFunction);
Set<Entry<Integer, String>> entrySet = httpStatus.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println("Http Status Code : " + entry.getKey() + " Http Message : " + entry.getValue());
}
}
private static class MyBiFunction implements BiFunction<String, String, String> {
@Override
public String apply(String key, String value) {
return key + "--->" + value;
}
}
}
Output of above program is shown below:
Http Status Code : 401 Http Message : Unauthorized Http Status Code : 422 Http Message : Unprocessable Entity Http Status Code : 424 Http Message : Failed Dependency Http Status Code : 504 Http Message : Gateway Timeout Http Status Code : 409 Http Message : Conflict Http Status Code : 429 Http Message : Too Many Requests--->So may requests
Great content and excellent explanation. It really adds value for readers looking to understand the topic. For further insights, explore AI powered Core JAVA Online Training in ameerpet.
ReplyDelete