diff --git a/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterable/IterableExample.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterable/IterableExample.java index a0cbcf665e..9110d6a15f 100644 --- a/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterable/IterableExample.java +++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterable/IterableExample.java @@ -1,48 +1,32 @@ package com.baeldung.collections.iterable; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; -class IterableExample { - - public static void iterateUsingIterator() { - List numbers = getNumbers(); +public class IterableExample { + public void iterateUsingIterator(List numbers) { Iterator iterator = numbers.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } - public static void removeElementsUsingIterator() { - List numbers = getNumbers(); - - Iterator iterator = numbers.iterator(); - while (iterator.hasNext()) { - iterator.remove(); - } - } - - public static void iterateUsingEnhancedForLoop() { - List numbers = getNumbers(); - + public void iterateUsingEnhancedForLoop(List numbers) { for (Integer number : numbers) { System.out.println(number); } } - public static void iterateUsingForEachLoop() { - List numbers = getNumbers(); + public void iterateUsingForEachLoop(List numbers) { numbers.forEach(System.out::println); } - private static List getNumbers() { - List numbers = new ArrayList<>(); - numbers.add(10); - numbers.add(20); - numbers.add(30); - numbers.add(40); - return numbers; + public void removeElementsUsingIterator(List numbers) { + Iterator iterator = numbers.iterator(); + while (iterator.hasNext()) { + iterator.next(); + iterator.remove(); + } } } diff --git a/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterable/IterableUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterable/IterableUnitTest.java new file mode 100644 index 0000000000..3e85d6ae42 --- /dev/null +++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterable/IterableUnitTest.java @@ -0,0 +1,54 @@ +package com.baeldung.collections.iterable; + +import com.baeldung.collections.iterable.IterableExample; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class IterableUnitTest { + + private static List getNumbers() { + List numbers = new ArrayList<>(); + numbers.add(10); + numbers.add(20); + numbers.add(30); + numbers.add(40); + return numbers; + } + + @Test + void givenNumbers_whenUsingIterator_thenCorrectSize() { + List numbers = getNumbers(); + IterableExample iterableExample = new IterableExample(); + iterableExample.iterateUsingIterator(numbers); + assertEquals(4, numbers.size()); + } + + @Test + void givenNumbers_whenRemoveElements_thenEmptyList() { + List numbers = getNumbers(); + IterableExample iterableExample = new IterableExample(); + iterableExample.removeElementsUsingIterator(numbers); + assertEquals(0, numbers.size()); + } + + @Test + void givenNumbers_whenIterateUsingEnhancedForLoop_thenCorrectSize() { + List numbers = getNumbers(); + IterableExample iterableExample = new IterableExample(); + iterableExample.iterateUsingEnhancedForLoop(numbers); + assertEquals(4, numbers.size()); + } + + @Test + void givenNumbers_whenIterateUsingForEachLoop_thenCorrectSize() { + List numbers = getNumbers(); + IterableExample iterableExample = new IterableExample(); + iterableExample.iterateUsingForEachLoop(numbers); + assertEquals(4, numbers.size()); + } +} \ No newline at end of file