diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..92409ee --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +README.md +pointer-nested-classes.iml diff --git a/com/src/Collection.java b/com/src/Collection.java new file mode 100644 index 0000000..1f70ce0 --- /dev/null +++ b/com/src/Collection.java @@ -0,0 +1,73 @@ +package src; + +public class Collection { + + private Integer[] integers; + + public Collection(Integer[] integers) { + this.integers = integers; + } + + public Integer[] getIntegers() { + return integers; + } + + public void setIntegers(Integer[] integers) { + this.integers = integers; + } + + public static class FirstIteratorImplementator implements Iterator { + private Integer[] integers; + + public FirstIteratorImplementator(Integer[] integers) { + this.integers = integers; + } + + public Integer[] getIntegers() { + return integers; + } + + + @Override + public boolean hasNext() { + for (int i = 0; i < integers.length; i++) { + System.out.println(integers[i]); + } + return false; + } + + + @Override + public Object next() { + for (int i = 0; i < integers.length; i++) { + if (i % 2 != 0) { + integers[i] = null; + } + System.out.println(integers[i]); + } + return integers; + } + } + + public static class secondIteratorImplementator implements Iterator { + private Integer[] integers; + + public secondIteratorImplementator(Integer[] integers) { + this.integers = integers; + } + + + @Override + public boolean hasNext() { + return false; + } + + @Override + public Object next() { + for (int i = 0; i < integers.length; i += 2) { + System.out.println(integers[i]); + } + return integers; + } + } +} diff --git a/com/src/Iterator.java b/com/src/Iterator.java new file mode 100644 index 0000000..34a6460 --- /dev/null +++ b/com/src/Iterator.java @@ -0,0 +1,7 @@ +package src; + +public interface Iterator { + boolean hasNext(); + + Object next(); +} diff --git a/com/src/IteratorForEveryFifthElement.java b/com/src/IteratorForEveryFifthElement.java new file mode 100644 index 0000000..9759bcd --- /dev/null +++ b/com/src/IteratorForEveryFifthElement.java @@ -0,0 +1,38 @@ +package src; + +public class IteratorForEveryFifthElement { + private Integer[] integers; + + public IteratorForEveryFifthElement(Integer[] integers) { + this.integers = integers; + } + + public Integer[] getIntegers() { + return integers; + } + + public void setIntegers(Integer[] integers) { + this.integers = integers; + } + + public void iterateEveryFifthElemant(Integer[] inputtedIntegers) { + for (int i = 0; i < inputtedIntegers.length; i += 5) { + if (inputtedIntegers[i] % 2 == 0) { + inputtedIntegers[i] -= 100; + System.out.println(inputtedIntegers[i]); + } + } + } + + public static class InsideIterator { + public static void changeNumberIfItOdd(Integer[] inputtedIntegers) { + for (int i = 0; i < inputtedIntegers.length; i += 2) { + if (inputtedIntegers[i] % 2 == 0) { + inputtedIntegers[i] += 1; + System.out.println(inputtedIntegers[i]); + } + } + + } + } +} diff --git a/com/src/Main.java b/com/src/Main.java new file mode 100644 index 0000000..42bbe68 --- /dev/null +++ b/com/src/Main.java @@ -0,0 +1,48 @@ +package src; + +public class Main { + + public static void main(String[] args) { + + Collection FirstCollection = new Collection(new Integer[]{10, 11, 12, 13, 14, 15, 5, 4, 54, 185, 945, 645, 64, 6, 84, 68, 4, 684, 68, 4, 48, 684, 7165}); + Collection secondCollection = new Collection(new Integer[]{10, 11, 12, 13, 14, 15, 5, 4, 54, 185, 945, 645, 64, 6, 84, 68, 4, 684, 68, 4, 48, 684, 7165}); + Collection thirdCollection = new Collection(new Integer[]{10, 11, 12, 13, 14, 15, 5, 4, 54, 185, 945, 645, 64, 6, 84, 68, 4, 684, 68, 4, 48, 684, 7165}); + Collection fourthCollection = new Collection(new Integer[]{10, 11, 12, 13, 14, 15, 5, 4, 54, 185, 945, 645, 64, 6, 84, 68, 4, 684, 68, 4, 48, 684, 7165}); + Collection fifthCollection = new Collection(new Integer[]{10, 11, 12, 13, 14, 15, 5, 4, 54, 185, 945, 645, 64, 6, 84, 68, 4, 684, 68, 4, 48, 684, 7165}); + Iterator iterator = new Collection.FirstIteratorImplementator(thirdCollection.getIntegers()) { + public boolean hasNext() { + return false; + } + + @Override + public Object next() { + printEveritThirdElementIfInEven(getIntegers()); + return getIntegers(); + + } + }; + System.out.println("First"); + Collection.FirstIteratorImplementator FirstImplementator = new Collection.FirstIteratorImplementator(FirstCollection.getIntegers()); + FirstImplementator.next(); + FirstImplementator.hasNext(); + + + System.out.println("\nSecond"); + Collection.secondIteratorImplementator secondImplementator = new Collection.secondIteratorImplementator(secondCollection.getIntegers()); + secondImplementator.next(); + + System.out.println("\n Third"); + iterator.next(); + + System.out.println("\n Fourth"); + IteratorForEveryFifthElement.InsideIterator.changeNumberIfItOdd(fifthCollection.getIntegers()); + } + + private static void printEveritThirdElementIfInEven(Integer[] ints) { + for (int i = 0; i < ints.length; i += 3) { + if (ints[i] % 2 != 0) { + System.out.println(ints[i]); + } + } + } +}