数组操作-Java版
学习数据结构-数组
我发现在很多 教材上面并没有明确指出数组的使用
但有些机构培训中会有数组的使用
虽然很简单
但是我觉得先学好数组 会对数据结构有更好的理解
毕竟抽象的知识 最好有实体来解释
import java.util.Arrays;
/**
* @author doiy
* @date 2021-5-6 14:10
* 对象数组
*/
public class MyArray {
/**
* 用于存储数据的数组
*/
private int[] elements;
public MyArray() { // 初始化为0
elements = new int[0];
}
public int size() { // 打印数组长度
return elements.length;
}
public void show() { // 打印数组元素
System.out.println(Arrays.toString(elements));
}
public void add(int num) { // 在数组尾部添加数组元素
int[] newArr = new int[elements.length + 1];
for (int i = 0; i < elements.length; i++) {
newArr[i] = elements[i];
}
newArr[elements.length] = num;
elements = newArr;
}
public void index(int index, int num) { // 在指定位置插入元素
if (index > elements.length || index < 0) {
throw new IndexOutOfBoundsException("数组下标越界了");
}
int[] newArr = new int[elements.length + 1];
for (int i = 0; i < newArr.length; i++) {
if(i<index){
newArr[i] = elements[i];
}else {
if (i == index) {
newArr[i] = num;
}else {
newArr[i] = elements[i - 1];
}
}
}
elements = newArr;
}
public void delete(int index) { // 删除指定下标的元素
int[] newArr = new int[elements.length - 1];
if (index > elements.length || index < 0) {
throw new IndexOutOfBoundsException("数组下标越界了");
}
for (int i = 0; i < newArr.length; i++) {
if (i < index) {
newArr[i] = elements[i];
} else {
newArr[i] = elements[i + 1];
}
}
elements = newArr;
}
public void update(int index, int num) { // 修改指定下标的元素
if (index > 0 && index < elements.length) {
elements[index] = num;
}else {
throw new IndexOutOfBoundsException("数组下标越界了");
}
}
public int get(int index) { //获得指定下标的元素
if(index < 0 || index >= elements.length){
return -1;
}else {
return elements[index];
}
}
}