共计 2075 个字符,预计需要花费 6 分钟才能阅读完成。
数组的开端增加、替换、删除、任意地位插入、获取
数组类
import java.util.Arrays;
/**
* @author 23105
* @version 1.0
* @description: TODO
* @date 1/4/2023 下午 6:21
*/
public class ArrayCollection {
// 用于存储数组的数据
private int[] arr;
// 申明一个结构器
public ArrayCollection(){
// 先初始化数组长度为 0
arr = new int[0];
}
// 打印数组
public void show(){System.out.println(Arrays.toString(arr));
}
// 给数组开端增加一个新元素
public void addEle(int ele){
// 新建一个新数组, 将旧数组的长度 +1
int[] arrNew = new int[arr.length + 1];
// 遍历旧数组复制给新数组
for (int i = 0; i < arr.length; i++) {arrNew[i] = arr[i];
}
// 将新增加的 ele 元素给新数组的最初一位
arrNew[arr.length] = ele;
// 再将新数组 arrNew 赋值给旧数组 arr
arr = arrNew;
}
// 删除数组元素
public void delete(int index){
// 新建一个数组
int[] arrNew = new int[arr.length - 1];
// 先判断数组的索引是否越界
if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
}
// 遍历新数组,将旧数组 arr 复制给新数组 arrNew
for (int i = 0; i < arrNew.length; i++) {if (index > i){
// 如果索引 index 大于 i,失常赋值
arrNew[i] = arr[i];
}else {
// 如果索引 index 小于 i,将索引 i +1,赋值给新数组
arrNew[i] = arr[i + 1];
}
}
// 再把新数组 arrNew 从新赋值给旧数组 arr
arr = arrNew;
}
// 获取数组某个地位的元素
public int get(int index){return arr[index];
}
// 向数组任意地位插入一个元素
public void insertEle(int index,int ele){
// 先判断数组的索引是否越界
if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
}
// 新建一个数组
int[] arrNew = new int[arr.length + 1];
for (int i = 0; i < arr.length; i++) {if (index > i){arrNew[i] = arr[i];
}else {arrNew[i + 1] = arr[i];
}
}
// 向 index 地位插入 ele 元素
arrNew[index] = ele;
// 将新数组赋值 arrNew 给旧数组 arr
arr = arrNew;
}
// 替换指定地位的元素
public int replaceEle(int index,int ele){
// 判断 index 地位是否非法
// 先判断数组的索引是否越界
if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
}
return arr[index] = ele;
}
}
** 测试与截图 **
/**
- @author 23105
- @version 1.0
- @description: TODO
- @date 1/4/2023 下午 6:29
*/
public class TestArrayCollection {
public static void main(String[] args) {ArrayCollection ac = new ArrayCollection();
// 原数组
System.out.println("原数组");
ac.show();
// 增加新数组
ac.addEle(3);
ac.addEle(6);
ac.addEle(9);
ac.addEle(12);
ac.addEle(16);
// 增加后的数组
System.out.println("增加后的数组");
ac.show();
// 删除数组中一个元素
ac.delete(2);
// 删除后的数组
System.out.println("删除后的数组");
ac.show();
// 向任意地位插入一个元素
ac.insertEle(3,999);
ac.insertEle(3,99999);
// 插入后的数组
System.out.println("插入后的数组");
ac.show();
// 替换 3 地位的元素为 520
ac.replaceEle(3,520);
// 替换后的数组
System.out.println("替换后的数组");
ac.show();}
}
** 测试截图 **
![QQ 图片 20230402203828.jpg](/img/bVc7aNI)
正文完