From a0282482bc45d6a47e5c10cf078f7260bd1c867c Mon Sep 17 00:00:00 2001 From: codehunter34 Date: Fri, 31 May 2019 23:23:12 -0400 Subject: [PATCH 1/5] BAEL-2969: Copying Sets in Java --- .../core-java-collections-set/pom.xml | 71 ++++++++++-------- .../main/java/com/baeldung/set/CopySets.java | 74 +++++++++++++++++++ 2 files changed, 116 insertions(+), 29 deletions(-) create mode 100644 core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java diff --git a/core-java-modules/core-java-collections-set/pom.xml b/core-java-modules/core-java-collections-set/pom.xml index 2a930efde8..4c1b880f31 100644 --- a/core-java-modules/core-java-collections-set/pom.xml +++ b/core-java-modules/core-java-collections-set/pom.xml @@ -1,33 +1,46 @@ - - 4.0.0 - core-java-collections-set - 0.1.0-SNAPSHOT - core-java-collections-set - jar + + 4.0.0 + core-java-collections-set + 0.1.0-SNAPSHOT + core-java-collections-set + jar - - com.baeldung - parent-java - 0.0.1-SNAPSHOT - ../../parent-java - + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + - - - com.google.guava - guava - ${guava.version} - - - org.apache.commons - commons-collections4 - ${commons-collections4.version} - - + + + com.google.guava + guava + ${guava.version} + + + org.apache.commons + commons-collections4 + ${commons-collections4.version} + - - 4.3 - 27.1-jre - + + com.google.code.gson + gson + 2.8.5 + + + + commons-lang + commons-lang + 2.6 + + + + + 4.3 + 27.1-jre + diff --git a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java new file mode 100644 index 0000000000..011ccb9b56 --- /dev/null +++ b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java @@ -0,0 +1,74 @@ +package com.baeldung.set; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import org.apache.commons.lang.SerializationUtils; + +import com.google.gson.Gson; + +public class CopySets { + + public static Set copyByConstructor(Set original) { + Set copy = new HashSet<>(original); + return copy; + } + + public static Set copyBySetAddAll(Set original) { + Set copy = new HashSet<>(); + copy.addAll(original); + return copy; + } + + public static Set copyBySetClone(HashSet original) { + Set copy = (Set) original.clone(); + return copy; + } + + public static Set copyByJson(Set original) { + Gson gson = new Gson(); + String jsonStr = gson.toJson(original); + Set copy = gson.fromJson(jsonStr, Set.class); + + return copy; + } + + public static Set copyByApacheCommonsLang(Set original) { + Set copy = new HashSet<>(); + for (T item : original) { + copy.add((T) SerializationUtils.clone(item)); + } + return copy; + } + + public static void copyByStreamsAPI(Set original) { + Set copy1 = original.stream() + .collect(Collectors.toSet()); + + // Skip the first element + Set copy2 = original.stream() + .skip(1) + .collect(Collectors.toSet()); + + // Filter by comparing the types and attributes + Set copy3 = original.stream() + .filter(f -> f.getClass() + .equals(Integer.class)) + .collect(Collectors.toSet()); + + // Null check in case of expecting null values + Set copy4 = original.stream() + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + } + + public static Set copyByJava8(Set original) { + Set copy = Set.copyOf(original); + return copy; + } + +} From 858927c98524a5a0cd1c6862d88bdd1c107e2e82 Mon Sep 17 00:00:00 2001 From: codehunter34 Date: Fri, 7 Jun 2019 14:55:13 -0400 Subject: [PATCH 2/5] BAEL-2969: Copying Sets in Java --- .../main/java/com/baeldung/set/CopySets.java | 92 +++++++++---------- 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java index 011ccb9b56..0a173cb772 100644 --- a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java +++ b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java @@ -2,7 +2,6 @@ package com.baeldung.set; import java.io.Serializable; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -12,63 +11,54 @@ import com.google.gson.Gson; public class CopySets { - public static Set copyByConstructor(Set original) { - Set copy = new HashSet<>(original); - return copy; - } + // Copy Constructor + public static Set copyByConstructor(Set original) { + Set copy = new HashSet<>(original); + return copy; + } - public static Set copyBySetAddAll(Set original) { - Set copy = new HashSet<>(); - copy.addAll(original); - return copy; - } + // Set.addAll + public static Set copyBySetAddAll(Set original) { + Set copy = new HashSet<>(); + copy.addAll(original); + return copy; + } - public static Set copyBySetClone(HashSet original) { - Set copy = (Set) original.clone(); - return copy; - } + // Set.clone + public static Set copyBySetClone(HashSet original) { + Set copy = (Set) original.clone(); + return copy; + } - public static Set copyByJson(Set original) { - Gson gson = new Gson(); - String jsonStr = gson.toJson(original); - Set copy = gson.fromJson(jsonStr, Set.class); + // JSON + public static Set copyByJson(Set original) { + Gson gson = new Gson(); + String jsonStr = gson.toJson(original); + Set copy = gson.fromJson(jsonStr, Set.class); - return copy; - } + return copy; + } - public static Set copyByApacheCommonsLang(Set original) { - Set copy = new HashSet<>(); - for (T item : original) { - copy.add((T) SerializationUtils.clone(item)); - } - return copy; - } + // Apache Commons Lang + public static Set copyByApacheCommonsLang(Set original) { + Set copy = new HashSet<>(); + for (T item : original) { + copy.add((T) SerializationUtils.clone(item)); + } + return copy; + } - public static void copyByStreamsAPI(Set original) { - Set copy1 = original.stream() - .collect(Collectors.toSet()); + // Collectors.toSet + public static Set copyByCollectorsToSet(Set original) { + Set copy = original.stream().collect(Collectors.toSet()); - // Skip the first element - Set copy2 = original.stream() - .skip(1) - .collect(Collectors.toSet()); + return copy; + } - // Filter by comparing the types and attributes - Set copy3 = original.stream() - .filter(f -> f.getClass() - .equals(Integer.class)) - .collect(Collectors.toSet()); - - // Null check in case of expecting null values - Set copy4 = original.stream() - .filter(Objects::nonNull) - .collect(Collectors.toSet()); - - } - - public static Set copyByJava8(Set original) { - Set copy = Set.copyOf(original); - return copy; - } + // Using Java 10 + public static Set copyBySetCopyOf(Set original) { + Set copy = Set.copyOf(original); + return copy; + } } From d69a81e25c05f842fac436c18977bfc440d11795 Mon Sep 17 00:00:00 2001 From: codehunter34 Date: Fri, 7 Jun 2019 15:01:42 -0400 Subject: [PATCH 3/5] BAEL-2969: Copying Sets in Java --- .../core-java-collections-set/pom.xml | 3 +- .../main/java/com/baeldung/set/CopySets.java | 83 ++++++++++--------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/core-java-modules/core-java-collections-set/pom.xml b/core-java-modules/core-java-collections-set/pom.xml index 4c1b880f31..21b1b87ebe 100644 --- a/core-java-modules/core-java-collections-set/pom.xml +++ b/core-java-modules/core-java-collections-set/pom.xml @@ -1,5 +1,4 @@ - 4.0.0 core-java-collections-set diff --git a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java index 0a173cb772..950ae41357 100644 --- a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java +++ b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java @@ -11,54 +11,55 @@ import com.google.gson.Gson; public class CopySets { - // Copy Constructor - public static Set copyByConstructor(Set original) { - Set copy = new HashSet<>(original); - return copy; - } + // Copy Constructor + public static Set copyByConstructor(Set original) { + Set copy = new HashSet<>(original); + return copy; + } - // Set.addAll - public static Set copyBySetAddAll(Set original) { - Set copy = new HashSet<>(); - copy.addAll(original); - return copy; - } + // Set.addAll + public static Set copyBySetAddAll(Set original) { + Set copy = new HashSet<>(); + copy.addAll(original); + return copy; + } - // Set.clone - public static Set copyBySetClone(HashSet original) { - Set copy = (Set) original.clone(); - return copy; - } + // Set.clone + public static Set copyBySetClone(HashSet original) { + Set copy = (Set) original.clone(); + return copy; + } - // JSON - public static Set copyByJson(Set original) { - Gson gson = new Gson(); - String jsonStr = gson.toJson(original); - Set copy = gson.fromJson(jsonStr, Set.class); + // JSON + public static Set copyByJson(Set original) { + Gson gson = new Gson(); + String jsonStr = gson.toJson(original); + Set copy = gson.fromJson(jsonStr, Set.class); - return copy; - } + return copy; + } - // Apache Commons Lang - public static Set copyByApacheCommonsLang(Set original) { - Set copy = new HashSet<>(); - for (T item : original) { - copy.add((T) SerializationUtils.clone(item)); - } - return copy; - } + // Apache Commons Lang + public static Set copyByApacheCommonsLang(Set original) { + Set copy = new HashSet<>(); + for (T item : original) { + copy.add((T) SerializationUtils.clone(item)); + } + return copy; + } - // Collectors.toSet - public static Set copyByCollectorsToSet(Set original) { - Set copy = original.stream().collect(Collectors.toSet()); + // Collectors.toSet + public static Set copyByCollectorsToSet(Set original) { + Set copy = original.stream() + .collect(Collectors.toSet()); - return copy; - } + return copy; + } - // Using Java 10 - public static Set copyBySetCopyOf(Set original) { - Set copy = Set.copyOf(original); - return copy; - } + // Using Java 10 + public static Set copyBySetCopyOf(Set original) { + Set copy = Set.copyOf(original); + return copy; + } } From 8899b80818cff9a9e4a254fe1f5a10496c87b0df Mon Sep 17 00:00:00 2001 From: codehunter34 Date: Mon, 10 Jun 2019 01:48:14 -0400 Subject: [PATCH 4/5] BAEL-2969: Copying sets in Java --- .../src/main/java/com/baeldung/set/CopySets.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java index 950ae41357..53933e4439 100644 --- a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java +++ b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java @@ -56,10 +56,4 @@ public class CopySets { return copy; } - // Using Java 10 - public static Set copyBySetCopyOf(Set original) { - Set copy = Set.copyOf(original); - return copy; - } - } From a342b198b33d26c90c4135c9b231d7688fbba49e Mon Sep 17 00:00:00 2001 From: codehunter34 Date: Mon, 10 Jun 2019 01:48:14 -0400 Subject: [PATCH 5/5] BAEL-2969: Copying sets in Java --- .../src/main/java/com/baeldung/set/CopySets.java | 13 +++++++++++++ .../src/main/java/com/baeldung/set/CopySets.java | 6 ------ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 core-java-modules/core-java-10/src/main/java/com/baeldung/set/CopySets.java diff --git a/core-java-modules/core-java-10/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-10/src/main/java/com/baeldung/set/CopySets.java new file mode 100644 index 0000000000..d49724f81d --- /dev/null +++ b/core-java-modules/core-java-10/src/main/java/com/baeldung/set/CopySets.java @@ -0,0 +1,13 @@ +package com.baeldung.set; + +import java.util.Set; + +public class CopySets { + + // Using Java 10 + public static Set copyBySetCopyOf(Set original) { + Set copy = Set.copyOf(original); + return copy; + } + +} diff --git a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java index 950ae41357..53933e4439 100644 --- a/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java +++ b/core-java-modules/core-java-collections-set/src/main/java/com/baeldung/set/CopySets.java @@ -56,10 +56,4 @@ public class CopySets { return copy; } - // Using Java 10 - public static Set copyBySetCopyOf(Set original) { - Set copy = Set.copyOf(original); - return copy; - } - }