Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java数组的特点

优点:可以通过索引值访问任何的数组元素, 可以实现随机的访问。

缺点:插入/删除元素时, 需要扩容, 复制或者移动大量的元素, 效率比较低。

应用场景:适用于以查询访问为主, 很少进行插入/删除操作的情况。

package com.wkcto.chapter03.demo01;

import java.util.Arrays;

/**
 * 在数组中插入元素
 * @author 蛙课网
 *
 */
public class Test07 {

	public static void main(String[] args) {
		int [] data = {1,2,3,4,5,6,7};
		
		//在data数组,索引值为3的位置插入元素666
		data = insert( data, 3 , 666);
		System.out.println( Arrays.toString(data));  //[1,2,3,666,4,5,6,7]
	}

	//定义方法, 在数组的指定i位置添加一个元素key
	public static int[] insert( int [] myArray, int i, int key) {
		//1)定义更大的数组
		int[] newData = new int[myArray.length+1];
		
		//2) 把[0,i)范围的元素复制到新的数组中
		for(int j = 0 ; j < i ; j++){
			newData[j] = myArray[j];
		}
		
		//3) 把key元素存储到新数组的i位置
		newData[i] = key;
		
		//4) 把原数组[i,lenth)范围的元素复制到新的数组的[i+1, length+1)
		for( int j = i ;  j<myArray.length; j++){
			newData[j+1] = myArray[j];
		}
		
//		//5) 让原来的数组名指向新的数组
//		myArray = newData;
//		System.out.println( Arrays.toString(myArray));
		//5)返回新的数组
		return newData;
	}
}
//定义方法,删除数组指定位置的元素, 把myArray[i]元素删除
	public static int[] delete(int [] myArray, int i) {
		//1)定义更少的数组
		int [] newData = new int[myArray.length-1];
		//2) 把[0,i)范围 元素复制到新数组中
		System.arraycopy(myArray, 0, newData, 0, i);
		//3) 把[i+1, length)范围的元素复制到新数组[i,lenth-1)
		for( int j = i+1; j < myArray.length; j++){
			newData[j-1] = myArray[j];
		}
		//4) 返回新的数组
		return newData;
	}