1.数据的增加实现原理是下标后移nums[currentIndex]=data
2.数据的删除实现原理是令删除的下标为(index+1)把index~nums.length的往前移
3.数据的修改实现原理是直接在可控下标内注入即可
4. 数据的查询实现原理是直接返回可控下标内的data值
package Fengzhuang.Array;
public class SuperArray {
//对数据的增删改查
//创建一个数组nums
int[] nums;
//创建一个下标CurrentIndex
int currentIndex=-1;
//使用构造器初始化创建大小为10的数组
public SuperArray(){
nums=new int[10];
}
//方法重载创建任意大小的数组
public SuperArray(int capacity){
nums=new int[capacity];
}
//对数据的增加
public void add(int data){
// 是否扩容
currentIndex++;
if (currentIndex>nums.length-1){
int tager[]=new int[nums.length*2];
for (int i = 0; i < nums.length; i++) {
tager[i]=nums[i];
}
//改变引用
nums=tager;
}
nums[currentIndex]=data;
}
//对数据删除
public void delete(int index) {
//是否在内
if (index<0||index > currentIndex) {
System.out.println("您想删除的下标"+index+"不在范围之内");
} else {
for (int i = index+1; i < nums.length; i++) {
nums[i - 1] = nums[i];
}
currentIndex--;
}
}//对数据的修改
public void updata(int index,int data){
if (index<0||index > currentIndex) {
System.out.println("您想修改的数据不在范围之内");
}else {
nums[index]=data;
}
}
//对数据的查询
public Integer select(int index) {
if (index<0||index > currentIndex) {
System.out.println("您想查询的数据不在范围之内");
return null;
}else
return nums[index];
}
//对数据的排序
public void sort(){
int temp=0;
for (int i = 0; i < nums.length-1 ; i++) {
for (int j = 0; j < nums.length-i -1; j++) {
if(nums[j]>nums[j+1]){
temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
}
//返回数组的大小
public int size(){
return currentIndex+1;
}
//打印数据
public String ArraytoString(){
String result="[";
for (int i = 0; i < nums.length; i++) {
result+=nums[i]+",";
}
return result.substring(0, Integer.parseInt(nums.length-1)+"]";
}
}



