java 中Iterable和Iterator的使用

问题遇到的现象和发生背景

在学习Iterable和Iterator的过程中有些无法理解
(1)新建一个泛型类IterableAndIteratorDemo及其main()方法。

(2)新建实现接口实现泛型接口Iterable的泛型类ArrayStack,定义泛型数组arr和表示数组实际元素个数的变量size作为成员,代码如下:
//定义2个成员字段
private T[] arr = (T[]) new Object[100]; //泛型数组
private int size = 0; //计数实际存放的数据个数

(3)定义模拟堆栈操作的push()方法和泛型pop()方法。

(4)新建一个实现泛型接口Iterator的内部类ArrayIterator,定义整型成员变量i并赋值0,实现接口方法hashNext()和next()。

(5)利用内部类,对类ArrayStack实现接口方法iterator()。

(6)在测试类的main()方法里,依次创建ArrayStack对象、给属性数组赋值后,创建迭代器对象并遍历数组。

用代码块功能插入代码,请勿粘贴截图

public interface Iterable<T> {
    class ArrayStack<T> {
        T[] arr = (T[]) new Object[100];
        static int size = 0;

        void push(T v) {
            arr[size] = v;
            size = size + 1;
        }

        void pop(T v1) {
            for (int i = 0; i < 100; i++) {
                if (arr[i] == v1) {
                    arr[i] = null;
                }
            }

        }
    }
}

public class IterableAndIteratorDemo {
    public static void main(String[] args) {
        ArrayStack<Integer> arrayStack = new ArrayStack<>();
        arrayStack.push(1);
        arrayStack.push(2);
        arrayStack.push(3);



    }


    }
我的解答思路和尝试过的方法

后面三个实在是想不出来

我想要达到的结果

将这六个任务完美写出