版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengxu_kuangrexintu/article/details/85450385
面向对象的数组
代码示例:
1.创建一个面向对象的类MyArray
import java.util.Arrays;
public class MyArray {
/** 用于存储数据的数组 */
private int[] elements;
public MyArray() {
elements = new int[0];
}
/** 获取数组长度的方法 */
public int size() {
return elements.length;
}
/** 往数组的末尾添加一个元素 */
public void add(int element) {
// 创建一个新的数组
int[] newArr = new int[elements.length + 1];
// 把原数组中的元素复制到新数组中
for (int i = 0; i < elements.length; i++) {
newArr[i] = elements[i];
}
// 把添加的元素放入新数组中
newArr[elements.length] = element;
// 使用新数组替换旧数组
elements = newArr;
}
/** 打印所有元素到控制台 */
public void show() {
System.out.println(Arrays.toString(elements));
}
/**
* 删除数组中的元素
*
* @param index 数组中的下标
*/
public void delete(int index) {
// 判断下标是否越界
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
}
// 创建一个新的数组,长度为原数组的长度-1
int[] newArr = new int[elements.length - 1];
// 复制原有数据到新数组中
for (int i = 0; i < newArr.length; i++) {
// 想要删除的元素前面的元素
if (i < index) {
newArr[i] = elements[i];
} else {
// 想要删除的元素后面的元素
newArr[i] = elements[i + 1];
}
}
// 新数组替换旧数组
elements = newArr;
}
/**
* 取出指定位置的元素
*
* @param index 数组下标
*/
public int get(int index) {
// 判断下标是否越界
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
} else {
return elements[index];
}
}
/**
* 插入一个元素到指定位置
*
* @param index 插入元素下标
* @param element 插入的内容
*/
public void insert(int index, int element) {
// 创建一个新的数组
int[] newArr = new int[elements.length + 1];
// 将原数组中的元素放入新的数组中
for (int i = 0; i < elements.length; i++) {
// 目标位置之前的元素
if (i < index) {
newArr[i] = elements[i];
} else {
// 目标位置之后的元素
newArr[i + 1] = elements[i];
}
}
// 插入新的元素
newArr[index] = element;
// 新数组替换旧数组
elements = newArr;
}
/**
* 替换指定位置的元素
*
* @param index 元素下标
* @param element 替换的内容
*/
public void set(int index, int element) {
// 判断下标是否越界
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
} else {
elements[index] = element;
}
}
}
2.创建一个TestMyArray测试类
import domo1.util.MyArray;
public class TestMyArray {
public static void main(String[] args) {
// 创建一个可变得数组
MyArray ma = new MyArray();
// 获取数组长度
int size = ma.size();
ma.show();
// 往可变数组中添加元素
ma.add(99);
ma.add(98);
ma.add(97);
// 显示可变数组中的所有元素到控制台
ma.show();
// 删除某个元素
ma.delete(1);
ma.show();
// 取出指定位置的元素
int element = ma.get(1);
System.out.println(element);
System.out.println("=====================");
ma.add(96);
ma.add(95);
ma.add(94);
ma.show();
// 插入元素到指定位置
ma.insert(3, 33);
ma.show();
System.out.println("=====================");
// 替换指定位置的元素
ma.set(0, 100);
ma.show();
}
}
总结
上面的代码实例,自定义了一个int数组。如果小伙伴们要创建一个其他的数组改变一下类型,做一些细节处理就好了。