概述
动态数组
@目录
为什么要使用动态数组?
我们可以理解为动态数组就是在普通数组上增加了一个可以根据元素的个数动态调整数组大小的功能。静态数组定义之后没办法改变数组的长度,这时候需要我们定义一个类来拓展数组,动态数组相对于一般的数组课以灵活的进行 增 删 查 改操作
原理
- 原本用来存储数据的数组存满之后
- 在创建一个新的数组
- 新数组的长度为原来数组的1.5倍
- 将原来数组中的变量遍历复制到新的数组之中
- 接下来再存储就存储到新的数组中
属性
- 需要存储数据的数组
- 数组的长度
- 数组的下标
- 已经存入的元素个数
public class MyArry {
//object 类型可以存储任何类型的数据
//需要存储数据类型的数组
Object[]arry={};
//数组长度
int length;
//数组下标
int index;
//当前数组个数
int size;
构造方法
//构造方法传入初始变量
//格式 :public 类名(参数){}
public MyArry(int initialCapacity){
//参数校验
if (initialCapacity <= 0){
System.err.println("传入的 initialCapacity 小于或者等于0 不符合要求");
}else{
length=initialCapacity;
arr=new Object[length];
index=0;
size=0;
}
方法
- add
//基础方法
public void add(Object e){
//判断容量是否足够
if(length<=size){//容量已满需要扩容
int newlength=length+length>>1;//长度扩大为原来的1.5倍
Object[] newarr=new Object[newlength];
//将原来的数组中的数据全部复制到新的数组中
for (int i = 0; i < arr.length; i++) {
newarr[i]=arr[i];
}
length=newlength;
arr=newarr;
}
//重复调用add方法可以令下标不断增加
arr[index]=e;
index++;
size++;
}
- get
- remove
- replace
程序实现入口
public static void main(String[] args) {
MyArry myArry=new MyArry(10);
for (int i = 0; i <17; i++) {
` System.out.println(myArry.arr[i]);
}
}
}``
最后
以上就是舒服信封为你收集整理的Java基础 动态数组动态数组的全部内容,希望文章能够帮你解决Java基础 动态数组动态数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复