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));
}
//删除数组中的元素,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;
}
//取出指定位置的元素
public int get(int index) {
return elements[index];
}
//插入一个元素到指定位置
public void insert(int index, int element) {
//判断下标是否越界
if(index < 0 || index > elements.length-1) {
throw new RuntimeException("下标越界");//异常
}
//创建一个新的数组
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;
}
//替换指定位置的元素
public void set(int index,int element) {
//判断下标是否越界
if(index < 0 || index > elements.length-1) {
throw new RuntimeException("下标越界");//异常
}
elements[index]=element;
}
}
import java.util.Arrays;
public class Test0pArray {
public static void main(String[] args) {
// 解决数组长度不可变的问题
int[] arr = new int[] {9,8,7};
//快速查看数组中的元素
System.out.println(Arrays.toString(arr));
//要加入数组的目标元素
int dst = 6;
//创建一个新的数组,长度是原数组长度+1
int[] newArr = new int[arr.length+1];
//把原数组中的元素全部复制到新数组中
for(int i=0;i<arr.length;i++) {
newArr[i]=arr[i];//把原数组的元素附给新数组
}
System.out.println(Arrays.toString(newArr));
//把目标元素放入新数组的最后
newArr[arr.length]=dst;//原数组的第length个
//新数组替换原数组
arr=newArr;
System.out.println(Arrays.toString(arr));
}
}
import java.util.Arrays;
public class Test0pArray2 {
public static void main(String[] args) {
// 目标数组
int[] arr = new int[] {9,8,7,6,5,4};
System.out.println(Arrays.toString(arr));
//要删除的元素的下标
int dst=3;
//创建一个新的数组,长度是原数组的长度-1
int[] newArr = new int[arr.length-1];
//复制原数组除了要删除的那个元素以外的其他元素
for(int i=0;i<newArr.length;i++) {
//要删除的元素之前的元素
if(i<dst) {
newArr[i]=arr[i];
//要删除的元素之后的元素
}else {
newArr[i]=arr[i+1];
}
}
//新数组替换旧数组
arr = newArr;
System.out.println(Arrays.toString(arr));
}
}
public class TestArray {
public static void main(String[] args) {
// 创建一个数组
int[] arr1 = new int[3];
//获取数组长度
int length1 = arr1.length;
System.out.println(length1);
//访问数组中的元素:数组名[下标] 注意:下标从0开始
int element0 = arr1[0];
System.out.println("下标为零的数:"+element0);
//为数组中的元素赋值
arr1[0]=99;
System.out.println("下标为零的数:"+arr1[0]);
arr1[1]=98;
arr1[2]=97;
//遍历数组
for(int i=0;i<length1;i++) {
System.out.println("arr1 element"+i+":"+arr1[i]);
}
//创建数组的同时为数组中的元素赋值
int[] arr2 = new int[] {90,80,70,60,50};
//获取数组的长度
System.out.println("arr2的长度:"+arr2.length);
}
}
public class TestMyArray {
public static void main(String[] args) {
//创建一个可变的数组
MyArray ma = new MyArray();
//获取长度
int size = ma.size();
System.out.println(size);
ma.show();
//往可变数组中添加一个元素
ma.add(99);
ma.add(88);
ma.add(77);
//显示所有元素到控制台
ma.show();
//删除下标为1的元素
ma.delete(1);
ma.show();
int element = ma.get(1);
System.out.println(element);
//System.out.println(ma.get(1));
System.out.println("---------------");
ma.add(96);
ma.add(95);
ma.add(94);
ma.show();
//插入新的元素
ma.insert(3, 33);
ma.show();
//替换元素
ma.set(0, 100);
ma.show();
}
}