From 183e213f0e14b740fa23c294f1f0304cf492d6fc Mon Sep 17 00:00:00 2001 From: Neetika Khandelwal Date: Thu, 10 Aug 2023 23:11:25 +0530 Subject: [PATCH 01/14] Shallow and Deep Copy example --- .../com/baeldung/shallowdeepcopy/Student.java | 27 +++++++++++++++ .../ShallowDeepCopyExampleTest.java | 34 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java create mode 100644 core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java new file mode 100644 index 0000000000..df75db23ac --- /dev/null +++ b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java @@ -0,0 +1,27 @@ +package com.baeldung.shallowdeepcopy; + +class Student { + private String name; + private int rollno; + + public Student(String name, int rollno) { + this.name = name; + this.rollno = rollno; + } + + public String getName() { + return name; + } + public int getRollno() { + return rollno; + } + + public void setRollno(int rollno) { + this.rollno = rollno; + } + + public void setName(String name) { + this.name = name; + } +} + diff --git a/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java b/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java new file mode 100644 index 0000000000..68836a96f8 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java @@ -0,0 +1,34 @@ +package com.baeldung.shallowdeepcopy; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +public class ShallowDeepCopyExampleTest { + + @Test + void testShallowCopy() { + Student originalStudent = new Student("John", 20); + Student shallowCopy = originalStudent; + + shallowCopy.setName("Baeldung"); + shallowCopy.setRollno(10); + + assertEquals("Baeldung", originalStudent.getName()); + assertEquals(10, originalStudent.getRollno()); + } + + @Test + void testDeepCopy() { + Student originalStudent = new Student("John", 20); + Student deepCopy = new Student(originalStudent.getName(), originalStudent.getRollno()); + + deepCopy.setName("Baeldung"); + deepCopy.setRollno(10); + + assertEquals("John", originalStudent.getName()); + assertEquals(20, originalStudent.getRollno()); + + assertEquals("Baeldung", deepCopy.getName()); + assertEquals(10, deepCopy.getRollno()); + } +} From 601d051f32e0745819ee0d781d882d9927e4e3db Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 22 Sep 2023 22:30:54 +0530 Subject: [PATCH 02/14] Student.java --- .../com/baeldung/shallowdeepcopy/Student.java | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java index df75db23ac..a3f726b64b 100644 --- a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java +++ b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java @@ -1,27 +1,16 @@ package com.baeldung.shallowdeepcopy; -class Student { - private String name; - private int rollno; - - public Student(String name, int rollno) { - this.name = name; +class Student { + private String name; + private int age; + private School school; + public Student(String name, int age, School school) { + this.name = name; this.rollno = rollno; - } - - public String getName() { - return name; - } - public int getRollno() { - return rollno; - } - - public void setRollno(int rollno) { - this.rollno = rollno; - } - - public void setName(String name) { - this.name = name; - } + this.school = school; + } + public Student(Student st) { + this(st.getName(), st.getAge(), st.getSchool()); + } // standard getters and setters } From fc07da9edae917f0c8e6f2f0ebc42d78db203a3c Mon Sep 17 00:00:00 2001 From: Neetika KHANDELWAL Date: Fri, 22 Sep 2023 23:06:36 +0530 Subject: [PATCH 03/14] Modified code for Test --- .../com/baeldung/shallowdeepcopy/School.java | 22 ++++++++ .../com/baeldung/shallowdeepcopy/Student.java | 33 ++++++++---- .../ShallowDeepCopyExampleTest.java | 53 +++++++++++-------- 3 files changed, 74 insertions(+), 34 deletions(-) create mode 100644 core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java new file mode 100644 index 0000000000..28a751741e --- /dev/null +++ b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java @@ -0,0 +1,22 @@ +package com.baeldung.shallowdeepcopy; + +class School { + private String schoolName; + public School(School sc) { + this(sc.getSchoolName()); + } + public School(String schoolName) { + this.schoolName = schoolName; + } + // standard getters and setters +} + +@Override +public Object clone() { + try { + return (School) super.clone(); + } catch (CloneNotSupportedException e) { + return new School(this.getSchoolName()); + } +} + diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java index a3f726b64b..2fc34ba709 100644 --- a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java +++ b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java @@ -1,16 +1,27 @@ package com.baeldung.shallowdeepcopy; class Student { - private String name; - private int age; - private School school; - public Student(String name, int age, School school) { - this.name = name; - this.rollno = rollno; - this.school = school; - } - public Student(Student st) { - this(st.getName(), st.getAge(), st.getSchool()); - } // standard getters and setters + private String name; + private int age; + private School school; + public Student(String name, int age, School school) { + this.name = name; + this.rollno = rollno; + this.school = school; + } + public Student(Student st) { + this(st.getName(), st.getAge(), st.getSchool()); + } // standard getters and setters } +@Override +public Object clone() { + Student student = null; + try { + student = (Student) super.clone(); + } catch (CloneNotSupportedException e) { + student = new Student(this.getName(), this.getAge(), this.getSchool()); + } + student.school= (School) this.school.clone(); + return student; +} \ No newline at end of file diff --git a/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java b/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java index 68836a96f8..a14a621dcc 100644 --- a/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java +++ b/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java @@ -4,31 +4,38 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; public class ShallowDeepCopyExampleTest { + + @Test + public void whenPerformShallowCopy_thenObjectsNotSame() { + School school = new School("Baeldung School"); + Student originalStudent = new Student("John", 20, school); + Student shallowCopy = new Student(originalStudent.getName(), originalStudent.getAge(), originalStudent.getSchool()); + assertNotSame(shallowCopy, originalStudent); + } + + @Test public void whenModifyingActualObject_thenCopyAlsoChange() { + School school = new School("Baeldung School"); + Student originalStudent = new Student("John", 20, school); + Student shallowCopy = new Student(originalStudent.getName(), originalStudent.getAge(), originalStudent.getSchool()); + school.setSchoolName("New Baeldung School"); + assertEquals(shallowCopy.getSchool().getSchoolName(), originalStudent.getSchool().getSchoolName()); + } @Test - void testShallowCopy() { - Student originalStudent = new Student("John", 20); - Student shallowCopy = originalStudent; + public void whenModifyingActualObject_thenCloneCopyNotChange() { + School school = new School("New School"); + Student originalStudent = new Student("Alice", 10, school); + Student deepCopy = (Student) originalStudent.clone(); + school.setSchoolName("New Baeldung School"); + assertNotEquals(deepCopy.getSchool().getSchoolName(), originalStudent.getSchool().getSchoolName()); + } - shallowCopy.setName("Baeldung"); - shallowCopy.setRollno(10); - - assertEquals("Baeldung", originalStudent.getName()); - assertEquals(10, originalStudent.getRollno()); - } - - @Test - void testDeepCopy() { - Student originalStudent = new Student("John", 20); - Student deepCopy = new Student(originalStudent.getName(), originalStudent.getRollno()); - - deepCopy.setName("Baeldung"); - deepCopy.setRollno(10); - - assertEquals("John", originalStudent.getName()); - assertEquals(20, originalStudent.getRollno()); - - assertEquals("Baeldung", deepCopy.getName()); - assertEquals(10, deepCopy.getRollno()); + @Test + public void whenModifyingActualObject_thenCopyNotChange() { + School school = new School("Baeldung School"); + Student originalStudent = new Student("Alice", 30, school); + Student deepCopy = new Student(originalStudent); + school.setSchoolName("New Baeldung School"); + assertNotEquals( originalStudent.getSchool().getSchoolName(), deepCopy.getSchool().getSchoolName()); } } From 450b6d8025dd076cfb069e60969fe84f646a8cc9 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Thu, 26 Oct 2023 23:25:17 +0530 Subject: [PATCH 04/14] Create StringIterator.java --- .../baeldung/stringIterator/StringIterator.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java diff --git a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java new file mode 100644 index 0000000000..2ffabc48d4 --- /dev/null +++ b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java @@ -0,0 +1,14 @@ +package com.baeldung.stringIterator; + +public class StringIterator { + public static void main(String[] args) { + String str = "Hello, Baeldung!"; + java8forEach(str); + } + + public static void java8forEach(String str){ + str.chars().forEach(name -> { + System.out.print((char) name); + }); + } +} From d3d60f392b77c69677e02dfc8407df7e5b1aea72 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Thu, 26 Oct 2023 23:41:32 +0530 Subject: [PATCH 05/14] Update StringIterator.java --- .../stringIterator/StringIterator.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java index 2ffabc48d4..cbd69a151a 100644 --- a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java +++ b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java @@ -1,14 +1,53 @@ package com.baeldung.stringIterator; +import java.text.*; +import java.util.*; + public class StringIterator { public static void main(String[] args) { String str = "Hello, Baeldung!"; + javaforLoop(str); + System.out.println(); java8forEach(str); + System.out.println(); + javaCharArray(str); + System.out.println(); + javaRegexExp(str); + System.out.println(); + javaCharacterIterator(str); } - + + public static void javaCharArray(String str){ + for (char c : str.toCharArray()) { + System.out.print(c); + } + } + + public static void javaforLoop(String str) { + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + System.out.print(c); + } + } + public static void java8forEach(String str){ str.chars().forEach(name -> { System.out.print((char) name); }); } + + public static void javaRegexExp(String str){ + String[] characters = str.split(""); + for (String c : characters) { + System.out.print(c); + } + } + + public static void javaCharacterIterator(String str){ + CharacterIterator it = new StringCharacterIterator(str); + while (it.current() != CharacterIterator.DONE) { + System.out.print(it.current()); + it.next(); + } + } } From 0fa77ed809e43b24e7dc474308eb461e5a7c708e Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Thu, 26 Oct 2023 23:45:34 +0530 Subject: [PATCH 06/14] Create StringIteratorTest.java --- .../java/com/baeldung/stringIterator/StringIteratorTest.java | 1 + 1 file changed, 1 insertion(+) create mode 100644 core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java diff --git a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java new file mode 100644 index 0000000000..9daeafb986 --- /dev/null +++ b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java @@ -0,0 +1 @@ +test From 7aeb97fcdfe49b2518512339356462ced27a5966 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Thu, 26 Oct 2023 23:57:27 +0530 Subject: [PATCH 07/14] Update StringIterator.java --- .../stringIterator/StringIterator.java | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java index cbd69a151a..0f7cd2a7f7 100644 --- a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java +++ b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java @@ -6,48 +6,54 @@ import java.util.*; public class StringIterator { public static void main(String[] args) { String str = "Hello, Baeldung!"; - javaforLoop(str); - System.out.println(); - java8forEach(str); - System.out.println(); - javaCharArray(str); - System.out.println(); - javaRegexExp(str); - System.out.println(); - javaCharacterIterator(str); + System.out.println(javaforLoop(str)); + System.out.println(java8forEach(str)); + System.out.println(javaCharArray(str)); + System.out.println(javaRegexExp(str)); + System.out.println(javaCharacterIterator(str)); } - public static void javaCharArray(String str){ + public static String javaCharArray(String str){ + StringBuilder result = new StringBuilder(); for (char c : str.toCharArray()) { - System.out.print(c); + result.append(c); } + return result.toString(); } - public static void javaforLoop(String str) { + public static String javaforLoop(String str) { + StringBuilder result = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); - System.out.print(c); + result.append(c); } + return result.toString(); } - public static void java8forEach(String str){ + public static String java8forEach(String str){ + StringBuilder result = new StringBuilder(); str.chars().forEach(name -> { - System.out.print((char) name); + result.append((char) name); }); + return result.toString(); } - public static void javaRegexExp(String str){ + public static String javaRegexExp(String str){ + StringBuilder result = new StringBuilder(); String[] characters = str.split(""); for (String c : characters) { - System.out.print(c); + result.append(c); } + return result.toString(); } - public static void javaCharacterIterator(String str){ + public static String javaCharacterIterator(String str){ + StringBuilder result = new StringBuilder(); CharacterIterator it = new StringCharacterIterator(str); while (it.current() != CharacterIterator.DONE) { - System.out.print(it.current()); + result.append(it.current()); it.next(); } + return result.toString(); } } From aa7ad247e1c7d8e53c0fcb3554d60ff8807fa82b Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:02:38 +0530 Subject: [PATCH 08/14] Update StringIteratorTest.java --- .../stringIterator/StringIteratorTest.java | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java index 9daeafb986..8f7b853bc2 100644 --- a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java +++ b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java @@ -1 +1,47 @@ -test +package com.baeldung.stringIterator; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +public class StringIteratorTest { + + @Test + public void testJavaCharArray() { + String input = "Hello, Baeldung!"; + String expectedOutput = "Hello, Baeldung!"; + String result = StringIterator.javaCharArray(input); + assertEquals(expectedOutput, result); + } + + @Test + public void testJavaForLoop() { + String input = "Hello, Baeldung!"; + String expectedOutput = "Hello, Baeldung!"; + String result = StringIterator.javaForLoop(input); + assertEquals(expectedOutput, result); + } + + @Test + public void testJava8ForEach() { + String input = "Hello, Baeldung!"; + String expectedOutput = "Hello, Baeldung!"; + String result = StringIterator.java8ForEach(input); + assertEquals(expectedOutput, result); + } + + @Test + public void testJavaRegExp() { + String input = "Hello, Baeldung!"; + String expectedOutput = "Hello, Baeldung!"; + String result = StringIterator.javaRegExp(input); + assertEquals(expectedOutput, result); + } + + @Test + public void testJavaCharacterIterator() { + String input = "Hello, Baeldung!"; + String expectedOutput = "Hello, Baeldung!"; + String result = StringIterator.javaCharacterIterator(input); + assertEquals(expectedOutput, result); + } +} From 9f1ce56f8260557130b8695d4785fe7077ac32a7 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:09:53 +0530 Subject: [PATCH 09/14] Update StringIteratorTest.java --- .../baeldung/stringIterator/StringIteratorTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java index 8f7b853bc2..2caec944f5 100644 --- a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java +++ b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.*; public class StringIteratorTest { @Test - public void testJavaCharArray() { + public void whenUseCharArrayMethod_thenIterate() { String input = "Hello, Baeldung!"; String expectedOutput = "Hello, Baeldung!"; String result = StringIterator.javaCharArray(input); @@ -14,7 +14,7 @@ public class StringIteratorTest { } @Test - public void testJavaForLoop() { + public void whenUseJavaForLoop_thenIterate() { String input = "Hello, Baeldung!"; String expectedOutput = "Hello, Baeldung!"; String result = StringIterator.javaForLoop(input); @@ -22,7 +22,7 @@ public class StringIteratorTest { } @Test - public void testJava8ForEach() { + public void whenUseForEachMethod_thenIterate() { String input = "Hello, Baeldung!"; String expectedOutput = "Hello, Baeldung!"; String result = StringIterator.java8ForEach(input); @@ -30,7 +30,7 @@ public class StringIteratorTest { } @Test - public void testJavaRegExp() { + public void whenUseRegexSplit_thenIterate() { String input = "Hello, Baeldung!"; String expectedOutput = "Hello, Baeldung!"; String result = StringIterator.javaRegExp(input); @@ -38,7 +38,7 @@ public class StringIteratorTest { } @Test - public void testJavaCharacterIterator() { + public void whenUseCharacterIterator_thenIterate() { String input = "Hello, Baeldung!"; String expectedOutput = "Hello, Baeldung!"; String result = StringIterator.javaCharacterIterator(input); From 002def2d241829c9ed3d6e31eb7174cc7e0f767b Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:49:09 +0530 Subject: [PATCH 10/14] Delete core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java --- .../com/baeldung/shallowdeepcopy/School.java | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java deleted file mode 100644 index 28a751741e..0000000000 --- a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/School.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.shallowdeepcopy; - -class School { - private String schoolName; - public School(School sc) { - this(sc.getSchoolName()); - } - public School(String schoolName) { - this.schoolName = schoolName; - } - // standard getters and setters -} - -@Override -public Object clone() { - try { - return (School) super.clone(); - } catch (CloneNotSupportedException e) { - return new School(this.getSchoolName()); - } -} - From f20dbd4ed9d5ed917b1436fd1c2e600e5ddfe66c Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:49:29 +0530 Subject: [PATCH 11/14] Delete core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java --- .../com/baeldung/shallowdeepcopy/Student.java | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java diff --git a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java b/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java deleted file mode 100644 index 2fc34ba709..0000000000 --- a/core-java-modules/core-java-lang-oop-patterns/src/main/java/com/baeldung/shallowdeepcopy/Student.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.baeldung.shallowdeepcopy; - -class Student { - private String name; - private int age; - private School school; - public Student(String name, int age, School school) { - this.name = name; - this.rollno = rollno; - this.school = school; - } - public Student(Student st) { - this(st.getName(), st.getAge(), st.getSchool()); - } // standard getters and setters -} - -@Override -public Object clone() { - Student student = null; - try { - student = (Student) super.clone(); - } catch (CloneNotSupportedException e) { - student = new Student(this.getName(), this.getAge(), this.getSchool()); - } - student.school= (School) this.school.clone(); - return student; -} \ No newline at end of file From 98c8e96fcae4562c2ce85fd4869fa172a65d97e3 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:49:52 +0530 Subject: [PATCH 12/14] Delete core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java --- .../ShallowDeepCopyExampleTest.java | 41 ------------------- 1 file changed, 41 deletions(-) delete mode 100644 core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java diff --git a/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java b/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java deleted file mode 100644 index a14a621dcc..0000000000 --- a/core-java-modules/core-java-lang-oop-patterns/src/test/java/com/baeldung/shallowdeepcopy/ShallowDeepCopyExampleTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.shallowdeepcopy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; - -public class ShallowDeepCopyExampleTest { - - @Test - public void whenPerformShallowCopy_thenObjectsNotSame() { - School school = new School("Baeldung School"); - Student originalStudent = new Student("John", 20, school); - Student shallowCopy = new Student(originalStudent.getName(), originalStudent.getAge(), originalStudent.getSchool()); - assertNotSame(shallowCopy, originalStudent); - } - - @Test public void whenModifyingActualObject_thenCopyAlsoChange() { - School school = new School("Baeldung School"); - Student originalStudent = new Student("John", 20, school); - Student shallowCopy = new Student(originalStudent.getName(), originalStudent.getAge(), originalStudent.getSchool()); - school.setSchoolName("New Baeldung School"); - assertEquals(shallowCopy.getSchool().getSchoolName(), originalStudent.getSchool().getSchoolName()); - } - - @Test - public void whenModifyingActualObject_thenCloneCopyNotChange() { - School school = new School("New School"); - Student originalStudent = new Student("Alice", 10, school); - Student deepCopy = (Student) originalStudent.clone(); - school.setSchoolName("New Baeldung School"); - assertNotEquals(deepCopy.getSchool().getSchoolName(), originalStudent.getSchool().getSchoolName()); - } - - @Test - public void whenModifyingActualObject_thenCopyNotChange() { - School school = new School("Baeldung School"); - Student originalStudent = new Student("Alice", 30, school); - Student deepCopy = new Student(originalStudent); - school.setSchoolName("New Baeldung School"); - assertNotEquals( originalStudent.getSchool().getSchoolName(), deepCopy.getSchool().getSchoolName()); - } -} From 66604b8e2750cd260a3839a614237f316b0a7727 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:51:01 +0530 Subject: [PATCH 13/14] Update StringIterator.java --- .../baeldung/stringIterator/StringIterator.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java index 0f7cd2a7f7..0e46c7eedd 100644 --- a/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java +++ b/core-java-modules/core-java-strings/src/main/java/com/baeldung/stringIterator/StringIterator.java @@ -4,14 +4,6 @@ import java.text.*; import java.util.*; public class StringIterator { - public static void main(String[] args) { - String str = "Hello, Baeldung!"; - System.out.println(javaforLoop(str)); - System.out.println(java8forEach(str)); - System.out.println(javaCharArray(str)); - System.out.println(javaRegexExp(str)); - System.out.println(javaCharacterIterator(str)); - } public static String javaCharArray(String str){ StringBuilder result = new StringBuilder(); @@ -38,15 +30,6 @@ public class StringIterator { return result.toString(); } - public static String javaRegexExp(String str){ - StringBuilder result = new StringBuilder(); - String[] characters = str.split(""); - for (String c : characters) { - result.append(c); - } - return result.toString(); - } - public static String javaCharacterIterator(String str){ StringBuilder result = new StringBuilder(); CharacterIterator it = new StringCharacterIterator(str); From befba49dece94e215f4aab950d0be591305a9d98 Mon Sep 17 00:00:00 2001 From: Neetika23 <42495275+Neetika23@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:52:14 +0530 Subject: [PATCH 14/14] Update StringIteratorTest.java --- .../com/baeldung/stringIterator/StringIteratorTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java index 2caec944f5..585d65d4be 100644 --- a/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java +++ b/core-java-modules/core-java-strings/src/test/java/com/baeldung/stringIterator/StringIteratorTest.java @@ -29,14 +29,6 @@ public class StringIteratorTest { assertEquals(expectedOutput, result); } - @Test - public void whenUseRegexSplit_thenIterate() { - String input = "Hello, Baeldung!"; - String expectedOutput = "Hello, Baeldung!"; - String result = StringIterator.javaRegExp(input); - assertEquals(expectedOutput, result); - } - @Test public void whenUseCharacterIterator_thenIterate() { String input = "Hello, Baeldung!";