我是靠谱客的博主 舒服信封,这篇文章主要介绍Java基础 动态数组动态数组,现在分享给大家,希望可以做个参考。

动态数组

@目录

为什么要使用动态数组?

我们可以理解为动态数组就是在普通数组上增加了一个可以根据元素的个数动态调整数组大小的功能。静态数组定义之后没办法改变数组的长度,这时候需要我们定义一个类来拓展数组,动态数组相对于一般的数组课以灵活的进行 增 删 查 改操作

原理

  • 原本用来存储数据的数组存满之后
  • 在创建一个新的数组
  • 新数组的长度为原来数组的1.5倍
  • 将原来数组中的变量遍历复制到新的数组之中
  • 接下来再存储就存储到新的数组中

属性

  • 需要存储数据的数组
  • 数组的长度
  • 数组的下标
  • 已经存入的元素个数
复制代码
1
2
3
4
5
6
7
8
9
10
11
public class MyArry { //object 类型可以存储任何类型的数据 //需要存储数据类型的数组 Object[]arry={}; //数组长度 int length; //数组下标 int index; //当前数组个数 int size;

构造方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
//构造方法传入初始变量 //格式 :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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//基础方法 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

程序实现入口

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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基础内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部