From 4aa8e6a0eb65e8edb9b716851ee4dd8881c434af Mon Sep 17 00:00:00 2001 From: Niklas Hoefflin <122729995+itakurah@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:58:56 +0100 Subject: [PATCH] Updated TwoPSet to use Generics instead of Strings (#4981) --- .../datastructures/crdt/TwoPSet.java | 18 +++++++++--------- .../datastructures/crdt/TwoPSetTest.java | 14 +++++++------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/thealgorithms/datastructures/crdt/TwoPSet.java b/src/main/java/com/thealgorithms/datastructures/crdt/TwoPSet.java index f5e155c2..c0ce17b2 100644 --- a/src/main/java/com/thealgorithms/datastructures/crdt/TwoPSet.java +++ b/src/main/java/com/thealgorithms/datastructures/crdt/TwoPSet.java @@ -15,9 +15,9 @@ import java.util.Set; * @author itakurah (Niklas Hoefflin) (https://github.com/itakurah) */ -public class TwoPSet { - private Set setA; - private Set setR; +public class TwoPSet { + private final Set setA; + private final Set setR; /** * Constructs an empty Two-Phase Set. @@ -33,7 +33,7 @@ public class TwoPSet { * @param element The element to be checked. * @return True if the element is in the set and has not been removed, otherwise false. */ - public boolean lookup(String element) { + public boolean lookup(T element) { return setA.contains(element) && !setR.contains(element); } @@ -42,7 +42,7 @@ public class TwoPSet { * * @param element The element to be added. */ - public void add(String element) { + public void add(T element) { setA.add(element); } @@ -51,7 +51,7 @@ public class TwoPSet { * * @param element The element to be removed. */ - public void remove(String element) { + public void remove(T element) { if (lookup(element)) { setR.add(element); } @@ -63,7 +63,7 @@ public class TwoPSet { * @param otherSet The other 2P-Set to compare with. * @return True if both SetA and SetR are subset, otherwise false. */ - public boolean compare(TwoPSet otherSet) { + public boolean compare(TwoPSet otherSet) { return otherSet.setA.containsAll(setA) && otherSet.setR.containsAll(setR); } @@ -73,8 +73,8 @@ public class TwoPSet { * @param otherSet The other 2P-Set to merge with. * @return A new 2P-Set containing the merged elements. */ - public TwoPSet merge(TwoPSet otherSet) { - TwoPSet mergedSet = new TwoPSet(); + public TwoPSet merge(TwoPSet otherSet) { + TwoPSet mergedSet = new TwoPSet<>(); mergedSet.setA.addAll(this.setA); mergedSet.setA.addAll(otherSet.setA); mergedSet.setR.addAll(this.setR); diff --git a/src/test/java/com/thealgorithms/datastructures/crdt/TwoPSetTest.java b/src/test/java/com/thealgorithms/datastructures/crdt/TwoPSetTest.java index 18ab5c16..d81362e8 100644 --- a/src/test/java/com/thealgorithms/datastructures/crdt/TwoPSetTest.java +++ b/src/test/java/com/thealgorithms/datastructures/crdt/TwoPSetTest.java @@ -7,11 +7,11 @@ import org.junit.jupiter.api.Test; class TwoPSetTest { - private TwoPSet set; + private TwoPSet set; @BeforeEach void setUp() { - set = new TwoPSet(); + set = new TwoPSet<>(); } @Test @@ -38,10 +38,10 @@ class TwoPSetTest { @Test void testCompare() { - TwoPSet set1 = new TwoPSet(); + TwoPSet set1 = new TwoPSet<>(); set1.add("A"); set1.add("B"); - TwoPSet set2 = new TwoPSet(); + TwoPSet set2 = new TwoPSet<>(); set2.add("A"); assertFalse(set1.compare(set2)); set2.add("B"); @@ -54,13 +54,13 @@ class TwoPSetTest { @Test void testMerge() { - TwoPSet set1 = new TwoPSet(); + TwoPSet set1 = new TwoPSet<>(); set1.add("A"); set1.add("B"); - TwoPSet set2 = new TwoPSet(); + TwoPSet set2 = new TwoPSet<>(); set2.add("B"); set2.add("C"); - TwoPSet mergedSet = set1.merge(set2); + TwoPSet mergedSet = set1.merge(set2); assertTrue(mergedSet.lookup("A")); assertTrue(mergedSet.lookup("B")); assertTrue(mergedSet.lookup("C"));