Java数组
数组的优点:省内存,按下表查找速度快
缺点:一旦确定就不能改变长度
适合储存:不需要要增加长度的数据
import sun.applet.Main;
/**
* @author SumYu
* @version v1.0
* @date 2017/8/15
* 自定义数组
*/
public class MyArrary {
private long[] arr;
//有效长度
private int elements;
public MyArrary() {
arr = new long[50];
}
public MyArrary(int maxsize) {
arr = new long[maxsize];
}
//插入
public void insert(long value) {
arr[elements] = value;
elements++;
}
//删除
public void delete(int index) {
if (index < 0 || index >= elements) {
throw new ArrayIndexOutOfBoundsException("输入错误");
}
for (int i = index; i < elements; i++) {
arr[index] = arr[index + 1];
}
elements--;
}
//显示
public void dislplay() {
System.out.print("[");
for (int i = 0; i < elements; i++) {
System.out.print(arr[i] + " ");
}
System.out.print("]");
}
//改变
public void update(int index, long value) {
if (index < 0 || index >= elements) {
throw new ArrayIndexOutOfBoundsException("输入错误");
}
arr[index] = value;
}
//查找
public void seach(long value) {
for (int i = 0; i < elements; i++) {
if (arr[i] == value) {
System.out.print("查找成功");
break;
}
}
System.out.print("查找失败");
}
//插入
public void insertIndex(long value, int index) {
if (index >= elements) {
throw new IndexOutOfBoundsException("越界");
}
elements++;
for (int i = elements; i >= index; i--) {
arr[i] = arr[i - 1];
}
arr[index] = value;
}
//交换
public void change(int num1, int num2) {
if ((elements >= num1 && num1 >= 0) && (0 <= num2 && num2 <= elements)) {
long temp = arr[num1];
arr[num1] = arr[num2];
arr[num2] = temp;
}
}
//二分查找
public int binarySearch(long num){
int hig = elements;
int low = 0;
int middle = 0;
while (true) {
middle = (low + hig) / 2;
if (low > hig) {
return -1;
} else if (num == arr[middle]) {
return 1;
} else {
if (num > arr[middle]) {
low = middle + 1;
}
if (num < arr[middle]) {
hig = middle - 1;
}
}
}
}
}