引论
数据结构对于计算机专业同学特别重要
我们都知道数组最大的缺点:数组长度是固定的。这篇博客就带你使用java语言实现动态数组。
1、动态数组的添加(末尾添加)
package com.yueqian.shujujiegou;
import java.util.Arrays;
/**
* 数据结构----------动态数组添加(add操作,将元素添加到数组最后一位)
* @author LinChi
*
*/
public class AddArray1 {
public static void main(String[] args) {
//创建旧数组
int[] arr = {1,2,3,4,5,6,7};
//指定要添加的元素
int dis = 6;
//打印添加前数组的元素
System.out.println("添加前数组的元素"+Arrays.toString(arr));
//创建新的数组,存放添加后的元素
int[] newArr = new int[arr.length+1];
//将旧数组的元素复制到新的数组中
for(int i = 0;i<arr.length;i++) {
newArr[i] = arr[i];
}
//将要添加的元素添加到数组的最后一个位置
newArr[arr.length] = dis;
//将新数组的引用赋值给旧数组
arr = newArr;
//打印添加后数组的元素
System.out.println("添加后数组的元素"+Arrays.toString(arr));
}
}
2、动态数组的插入(指定索引处的添加)
package com.yueqian.shujujiegou;
import java.util.Arrays;
/**
* 数据结构-----------------动态指定位置添加数组(insert操作)
* @author LinChi
*
*/
public class InsertArray {
public static void main(String[] args) {
insert(9,9);
}
public static void insert(int index,int element) {
//创建旧数组
int[] arr = {1,2,5,6,4,3,8,9,7};
System.out.println("添加前的数组:"+Arrays.toString(arr));
//创建新数组
int[] newArr = new int[arr.length+1];
//循环新数组
for(int i = 0;i<arr.length;i++) {
//要添加元素之前的元素,可以直接将元素赋值给新数组位置处
if(i<index) {
newArr[i] = arr[i];
}else {
//要添加元素之后的元素,将旧数组的值向新数组i+1位置存放
newArr[i+1] = arr[i];
}
}
//将需要添加的元素添加到此位置
newArr[index] = element;
//将新数组转换为旧数组
arr = newArr;
System.out.println("添加后的数组:"+Arrays.toString(arr));
}
}
3、动态数组的删除
package com.yueqian.shujujiegou;
import java.util.Arrays;
/**
* 数据结构------------- 动态删除数组
* @author LinChi
*
*/
public class DelArray {
public static void main(String[] args) {
//创建数组
int[] arr = {2,3,1,4,6,7,5,9};
//定义要删除元素的下标
int index = 7;
//打印删除前的数组
System.out.println("删除前的数组:"+Arrays.toString(arr));
//创建新数组,存放删除后的元素
int[] newArr = new int[arr.length-1];
//使用循环遍历新数组
for(int i = 0;i<newArr.length;i++) {
//要删除元素之前的元素,可以直接将元素赋值给新数组位置处
if(i<index) {
newArr[i] = arr[i];
}else {
//要删除元素之后的元素下标为i+1,赋值给新数组的i位置处
newArr[i] = arr[i+1];
}
}
//新数组替换旧数组
arr = newArr;
//删除后的新数组
System.out.println("删除后的数组:"+Arrays.toString(arr));
}
}
关于动态数组的主要方法就讲这么多了,ArrayList集合的实现就是基于动态数组。动态数组的其他方法可以参考我的另一篇博客:
记得关注作者哦!!!写作不易,贵在坚持!