数组
中间插入:
![](https://i-blog.csdnimg.cn/blog_migrate/f06588de6c51691541eb3f77553617aa.png)
public class MyArray {
private int[] array;
private int size;
public MyArray(int capacity){
this.array = new int[capacity];
this.size = 0;
}
/**
*
* @param element 插入的元素
* @param index
*/
public void insert(int index,int element){
// 判断访问下标是否超出范围
if(index > size || index < 0){
System.out.print("数组越界!");
return;
}
//从右有向左遍历,将每个元素向右移动一位
for(int i = size-1;i>=index;i--){
array[i+1] = array[i];
}
// 腾出位置,插入元素
array[index] = element;
size ++;
}
/**
* 输出数组
*/
public void output(){
for(int i=0;i<size;i++){
System.out.println(array[i]);
}
}
public static void main(String[] args){
//创建一个数组
MyArray myArray = new MyArray(10);
myArray.insert(0, 6);
myArray.insert(1, 3);
myArray.insert(2, 5);
myArray.insert(3, 1);
myArray.output();
myArray.insert(2, 22);
System.out.println("---------");
myArray.output();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/8870ae9c72860f0d184aafcdb851c62f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0496ddd7453f2da73dcb27caf653fe11.png)
public class MyArray2 {
private int[] array;
private int size;
public MyArray2(int capacity){
this.array = new int[capacity];
this.size = 0;
}
/**
*
* @param element 插入的元素
* @param index
*/
public void insert(int index,int element){
// 判断访问下标是否超出范围 # 不能= ,刚开始size=0
if(index > size || index < 0){
System.out.print("数组越界!");
return;
}
// 如果实际元素达到了数组的容量大小,则对数组进行扩容
if(size == array.length){
resize();
}
//从右有向左遍历,将每个元素向右移动一位
for(int i = size-1;i>=index;i--){
array[i+1] = array[i];
}
// 腾出位置,插入元素
array[index] = element;
size ++;
}
/**
* 数组的扩建
*/
public void resize(){
int [] newarray = new int[array.length*2];
//从旧数组复制到新数组
System.arraycopy(array, 0, newarray, 0, array.length);
array = newarray;
}
/**
* 输出数组
*/
public void output(){
for(int i=0;i<size;i++){
System.out.println(array[i]);
}
}
public static void main(String[] args){
//创建一个数组
MyArray2 myArray = new MyArray2(4);
myArray.insert(0, 6);
myArray.insert(1, 3);
myArray.insert(2, 5);
myArray.insert(3, 1);
myArray.output();
myArray.insert(2, 22);
myArray.insert(5, 99);
System.out.println("---------");
myArray.output();
System.out.println("size="+myArray.size);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/c319e7aebcd81c9991e5d97378f6cab3.png)
/**
* 删除某个位置上的元素
* @param index
*/
public void remove(int index){
//判断下标是否超出范围 # index 从0开始
if(index < 0 || index >= size){
System.out.print("下标超出范围");
}
//从左向右循环,将每个元素向左移动一位
for(int i=index; i<size-1; i++){
array[i] = array[i+1];
}
size--;
}
数组的优劣:
![](https://i-blog.csdnimg.cn/blog_migrate/54ddef6071e6577cb4dbd99151b1fe03.png)