MyArray.java(实现代码)
package com.bit.gzz;
public class MyArray {
//数组
private long[] arr;
//数组中有效数据的大小
private int size;
//无参构造,初始化数组的大小
public MyArray() {
arr = new long[50];
}
public void MyArray(int max) {
arr = new long[max];
}
//插入数据
public void insert(long value) {
arr[size] = value;
size++;
}
//显示数据
public void display() {
for (int i = 0; i < size; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
//查找数据
public int find(long searchKey) {
int i;
for (i = 0; i < size; i++) {
if (searchKey == arr[i]){
break;
}
}
if(i ==arr.length) {
return -1;
}else
return i;
}
//二分查找
public int binaryFind(long searchKey){
int mid = 0;
int left = 0;
int right = size;
while(true){
mid = left+(right-left)/2;
if(arr[mid] == searchKey){
return mid;
}else if(left > right){
return -1;
}else{
if(arr[mid] > searchKey) {
right = mid - 1;
}else{
left = mid + 1;
}
}
}
}
//删除数据
public void delete(long deleteKay) {
if (find(deleteKay) == -1) {
System.out.println("查找不到指定数据没删除失败");
} else {
//覆盖操作
for (int i = find(deleteKay); i < size; i++) {
arr[i] = arr[i + 1];
}
}
}
//修改数据
public void change(long Oddvalue,long newValue){
if(find(Oddvalue)==-1){
System.out.println("查找不到指定数据,修改失败");
}else{
arr[find(Oddvalue)] = newValue;
}
}
}
TestMyArray.java(测试代码)
package com.bit.gzz;
public class TestMyArray {
public static void main(String[] args){
MyArray myArray = new MyArray();
myArray.insert(1);
myArray.insert(2);
myArray.insert(3);
myArray.insert(4);
myArray.insert(5);
myArray.insert(6);
myArray.insert(7);
myArray.display();
System.out.println("**********");
System.out.println(myArray.find(3));
myArray.delete(3);
myArray.display();
myArray.change(4,8);
myArray.display();
}
}
进行二分查找是的测试
package com.bit.gzz;
public class TestMyArray {
public static void main(String[] args){
MyArray myArray = new MyArray();
myArray.insert(1);
myArray.insert(2);
myArray.insert(3);
myArray.insert(4);
myArray.insert(5);
myArray.insert(6);
myArray.insert(7);
myArray.display();
System.out.println("**********");
System.out.println(myArray.find(3));
System.out.println(myArray.binaryFind(3));
}
}