数组的扩容
来源:互联网 发布:淘宝客app云建站 编辑:程序博客网 时间:2024/06/06 03:42
用数组模拟栈
数组是固定大小的,不能改变长度,要想达到数组扩容的目的,就只能把当前数组复制到一个更长长度的数组中;
使用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; }}
阅读全文
0 0
- Java数组的扩容
- Java数组的扩容
- 数组的扩容
- 数组的扩容
- 数组的自动扩容问题
- Java中数组的扩容
- 数组扩容
- 数组扩容
- 数组扩容
- 数组扩容
- 数组扩容
- 数组扩容
- 关于java数组的扩容问题
- java数组自动扩容的方法。
- 数组是如何实现扩容的
- 变长数组vla(realloc的扩容)
- java数组与容器之间的转换,实现数组扩容
- java数组与容器之间的转换,实现数组扩容
- springboot项目初始化
- 多线程总结
- 过来人的忠告
- sublimText3在ubuntu下的中文支持
- git命令之:上传到的远程仓库
- 数组的扩容
- TCP/UDP
- FileOutputStream,OutputStreamWriter, BufferedWriter有啥区别
- java实现创建链表以及插入节点,查找结点,删除节点等操作
- 好累
- Mysql基础
- Centos7安装MariaDB10.28稳定版
- Combo Box 组合框
- 年终奖金