解释以下代码:public void push(int item) { if (size == arr.length) { int[] temp = new int[arr.length * 2]; for (int i = 0; i < arr.length; i++) { temp[i] = arr[i]; } arr = temp; arr = Arrays.copyOf(arr, arr.length * 2); } arr[size++] = item; } public void pop() { arr[--size] = 0 } public int size = 0; public int[] arr = new int[2];
时间: 2024-02-14 17:23:37 浏览: 105
2011海南省java版本入门.docx
这段代码实现了一个栈(stack)的数据结构,具体解释如下:
1. `push(int item)` 方法用于将一个元素压入栈中,如果栈已满,则将栈扩容到原来的两倍大小。具体扩容方式是,创建一个长度为原数组长度两倍的临时数组 `temp`,并将原数组 `arr` 中的元素全部复制到 `temp` 中,然后将 `arr` 指向 `temp`,最后使用 `Arrays.copyOf()` 方法将 `arr` 数组的长度再次扩容到原来的两倍。
2. `pop()` 方法用于弹出栈顶元素。由于栈顶元素的下标是 `size-1`,因此可以使用 `--size` 将 `size` 减一后将对应下标的元素设置为 0。
3. `size` 表示栈中元素的个数,初始值为 0。
4. `arr` 是存储栈元素的数组,初始长度为 2。当栈中元素个数达到数组长度时,需要调用 `push()` 方法进行扩容。
阅读全文