数组的添加、替换、移除、扩容
package com.array.one;
public class TestList {
static int[] nums = new int[5];
static int index = 0;//有效元素的个数,也可以代表下一个无效元素的插入位置
public static void main(String[] args) {
insert(0,11);
insert(1,22);
insert(2,33);
insert(3,44);
print();
//插入数据
insert(4,55);
//遍历
print();
}
//向数据中插入一个新元素
public static void insert(int position,int value) {
if(position < 0 || position > index) {
System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
return;
}
//将原数据依次向右移动
for(int i = index; i > position ; i--) {
nums[i] = nums[i-1];
}
//新值存入目标位置
nums[position] = value;
index++;
}
//移除
public static void remove(int position) {
if(position < 0 || position > index) {
System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
return;
}
//将原数据依次向要删除元素的下标移动
for(int i = position; i < index -1 ; i++) {
nums[i] = nums[i+1];
}
index--;
//最后一位元素使用0来进行占位
nums[index] = 0;
}
//替换
public static void replace(int position,int value) {
if(position < 0 || position > index) {
System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
return;
}
nums[position] = value;
}
//数组扩容
public static void expand() {
//获得新数组(带有原值)
int[] newArray = new int[nums.length * 2];
for(int i = 0;i <nums.length; i++) {
newArray[i] = nums[i];
}
//替换nums变量中的地址(称为替换引用)
//含义:将原nums中指向长度为5的数组,替换成现在指向长度为10的新数组
nums = newArray;
}
//遍历数组
public static void print() {
for(int i = 0; i < index; i++) {
System.out.println(nums[i]);
}
}
}