数组的扩容

 2023-09-06 阅读 15 评论 0

摘要:用数组模拟栈 数组是固定大小的,不能改变长度,要想达到数组扩容的目的,就只能把当前数组复制到一个更长长度的数组中; 使用Arrays.copyOf()方法 源码如下: public static short[] copyOf(short[] original, int newLength) {short[] copy

用数组模拟栈

数组是固定大小的,不能改变长度,要想达到数组扩容的目的,就只能把当前数组复制到一个更长长度的数组中;

使用Arrays.copyOf()方法
源码如下:

public static short[] copyOf(short[] original, int newLength) {short[] copy = new short[newLength];System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength));return copy;}

可以看出,内部调用了System.arraycopy()方法。

下面是用数组实现一个栈的代码:

class MinStack {/** initialize your data structure here. */int[] stack ;//数组int defaultSize = 2;//默认大小int realNumber;//存在的数量public MinStack() {this.stack = new int[defaultSize];}public void push(int x) {if(realNumber == stack.length){stack = Arrays.copyOf(stack,stack.length+defaultSize);  }stack[realNumber++] = x;    }public void pop() {if(realNumber > 0){realNumber--; }}public int top() {return stack[realNumber-1];}public int getMin() {int min = stack[0];for(int i = 0;i < realNumber;i++){if(min > stack[i]){min = stack[i];}} return min;}
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/10242.html

上一篇:网络编程TCP
下一篇:double+float

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息