diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..248a15b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +pointer-nested-classes.iml +README.md \ No newline at end of file diff --git a/src/Collections.java b/src/Collections.java new file mode 100644 index 0000000..a718866 --- /dev/null +++ b/src/Collections.java @@ -0,0 +1,50 @@ +public class Collections { + private static Integer[] integers; + + public Collections(Integer[] integers){ + Collections.integers = integers; + + } + public firstToLastIterator directIterator() { + return new firstToLastIterator(); + } + + private static class firstToLastIterator implements Iterator { + + private int currentIndex; + + @Override + public boolean hasNext() { + return currentIndex < integers.length; + } + + @Override + public Object next() { + if (currentIndex % 2 != 0) { + currentIndex++; + return 0; + } else { + return integers[currentIndex++]; + } + System.out.println(Integer[] integers); + } + } + + class lastToFirstIterator implements Iterator { + private int currentIndex = integers.length - 1; + + @Override + public boolean hasNext() { + return currentIndex >= 0; + } + + @Override + public Object next() { + int index = currentIndex; + currentIndex -= 2; + return integers[index]; + } + } + + +} diff --git a/src/Iterator.java b/src/Iterator.java new file mode 100644 index 0000000..99991db --- /dev/null +++ b/src/Iterator.java @@ -0,0 +1,6 @@ +public interface Iterator { + boolean hasNext(); + + Object next(); + +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..9464457 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,16 @@ +public class Main { + public static void main(String[] args) { + Collections collections = new Collections(new Integer[]{10, 11, 12, 13, 14, 15, 16, 17}); + + Iterator iterator = new collections.directIterator(); + display(iterator); + } + + + static void display(Iterator iterator) { + while (Iterator.hasNext()) { + System.out.println(iterator.next()); + } + } +} +