数组与动态数组
数组是具有相同数据类型的一组数据的集合。有一维数组和二维数组。
其特点是:线性结构,内存地址连续,长度固定,具有下标的一类数据结构。
在创建时首先确定元素的数据类型和数组名,在利用new关键字来分配内存空间。
如:int [ ] mouth =new int [12];
这样就为mouth这个int类型的数组分配了12个元素的内存空间。
但是在创建数组时,往往数据是不固定的,我们可能会经常性的添加数据,插入数据,删除数据,这样数组的结构特点就有了一定的局限性。因此一维数组在存储一些简单而少量且固定的数据。为了实现数组的更多的功能我们引入了动态数组。
动态数组顾名思义在继承了数组线性结构,内存地址连续后,其长度是不固定的,可以根据数据个数需要随意增减存储空间。
在动态数组中基本实现了所有数据结构中的操作:
放数据,取数据,移除数据,插入数据,删除数据,修改数据。
//数组的添加功能
public class Array {
private int[] src =new int[0];
//数组的添加功能
public void add(int t){
int [] dest=new int[src.length+1];
dest[dest.length-1]=t;
for (int i=0;i<src.length ;i++){
dest[i]=src[i];
}
src =dest;
//数据的获取功能
public int get(int index){
return src[index];
}
//数据的插入功能
public void insert(int t,int index){
int [] inst =new int[src.length+1];
inst[index]= t;
for (int i=0;i<src.length+1;i++){
if(i<index){
inst[i]=src[i];
}else if(i>index){
inst[i+1]=src[i];
}
}
inst=src;
}
//数据的删除功能
public void dele(int index){
int [] dsrc =new int[src.length-1];
dsrc[index]=src[index+1];
for(int i=0;i<src.length-1;i++){
if(i<index){
dsrc[i]=src[i];
}else if(i>index){
dsrc[i-1]=src[i];
}
}
dsrc=src
}
//数据的替代功能
public void replace(int t,int index){
src[index]=t;
}
评论