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
No comments :
Post a Comment