From aae74f3b6cce2260442e9c3469f0f22a0f22c319 Mon Sep 17 00:00:00 2001 From: Anshul Bansal Date: Mon, 8 Apr 2019 11:08:20 +0300 Subject: [PATCH] BAEL-2800_Copying_a_HashMap_in_Java - generic types added --- .../baeldung/copyinghashmap/CopyHashMap.java | 35 ++++++++++--------- .../copyinghashmap/CopyHashMapUnitTest.java | 7 ++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/core-java-collections-2/src/main/java/com/baeldung/copyinghashmap/CopyHashMap.java b/core-java-collections-2/src/main/java/com/baeldung/copyinghashmap/CopyHashMap.java index e673335f62..972f48a3bf 100644 --- a/core-java-collections-2/src/main/java/com/baeldung/copyinghashmap/CopyHashMap.java +++ b/core-java-collections-2/src/main/java/com/baeldung/copyinghashmap/CopyHashMap.java @@ -2,6 +2,7 @@ package com.baeldung.copyinghashmap; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; @@ -9,45 +10,45 @@ import org.apache.commons.lang3.SerializationUtils; public class CopyHashMap { - public static HashMap copyUsingConstructor(HashMap originalMap) { - return new HashMap(originalMap); + public static HashMap copyUsingConstructor(HashMap originalMap) { + return new HashMap(originalMap); } - public static HashMap copyUsingClone(HashMap originalMap) { - return (HashMap) originalMap.clone(); + public static HashMap copyUsingClone(HashMap originalMap) { + return (HashMap) originalMap.clone(); } - public static HashMap copyUsingPut(HashMap originalMap) { - HashMap copyMap = new HashMap(); - Set entries = originalMap.entrySet(); - for(Map.Entry mapEntry: entries) { - copyMap.put(mapEntry.getKey(), mapEntry.getValue()); + public static HashMap copyUsingPut(HashMap originalMap) { + HashMap copyMap = new HashMap(); + Set> entries = originalMap.entrySet(); + for(Map.Entry mapEntry: entries) { + copyMap.put((K)mapEntry.getKey(), (V)mapEntry.getValue()); } return copyMap; } - public static Map copyUsingPutAll(Map originalMap) { - HashMap copyMap = new HashMap(); + public static HashMap copyUsingPutAll(HashMap originalMap) { + HashMap copyMap = new HashMap(); copyMap.putAll(originalMap); return copyMap; } - public static HashMap copyUsingJava8Stream(HashMap originalMap) { - Set entries = originalMap.entrySet(); - HashMap copyMap = (HashMap) entries + public static HashMap copyUsingJava8Stream(HashMap originalMap) { + Set> entries = originalMap.entrySet(); + HashMap copyMap = (HashMap) entries .stream() .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); return copyMap; } - public static HashMap shallowCopy(HashMap originalMap) { - return (HashMap) originalMap.clone(); + public static HashMap shallowCopy(HashMap originalMap) { + return (HashMap) originalMap.clone(); } - public static HashMap deepCopy(HashMap originalMap) { + public static HashMap deepCopy(HashMap originalMap) { return SerializationUtils.clone(originalMap); } diff --git a/core-java-collections-2/src/test/java/com/baeldung/copyinghashmap/CopyHashMapUnitTest.java b/core-java-collections-2/src/test/java/com/baeldung/copyinghashmap/CopyHashMapUnitTest.java index f0434f9bfe..c71e17e94e 100644 --- a/core-java-collections-2/src/test/java/com/baeldung/copyinghashmap/CopyHashMapUnitTest.java +++ b/core-java-collections-2/src/test/java/com/baeldung/copyinghashmap/CopyHashMapUnitTest.java @@ -1,6 +1,5 @@ package com.baeldung.copyinghashmap; -import static org.junit.Assert.assertEquals; import static org.assertj.core.api.Assertions.assertThat; import java.util.HashMap; @@ -21,7 +20,7 @@ public class CopyHashMapUnitTest { map.put("emp1",emp1); map.put("emp2",emp2); - HashMap shallowCopy = CopyHashMap.shallowCopy(map); + HashMap shallowCopy = CopyHashMap.shallowCopy(map); assertThat(shallowCopy).isNotSameAs(map); @@ -36,7 +35,7 @@ public class CopyHashMapUnitTest { map.put("emp1",emp1); map.put("emp2",emp2); - HashMap shallowCopy = CopyHashMap.shallowCopy(map); + HashMap shallowCopy = CopyHashMap.shallowCopy(map); emp1.setName("Johny"); @@ -52,7 +51,7 @@ public class CopyHashMapUnitTest { Employee emp2 = new Employee("Norman"); map.put("emp1",emp1); map.put("emp2",emp2); - HashMap deepCopy = CopyHashMap.deepCopy(map); + HashMap deepCopy = CopyHashMap.deepCopy(map); emp1.setName("Johny");