private int[] elements; //用于存储数据的数组
//初始化
public MyArrey1() {
elements = new int[0];
}
//获取长度
public int size() {
return elements.length;
}
//数组元素的添加
public void add(int element) {
int[] newArr = new int[elements.length + 1];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = elements[i];
}
newArr[elements.length] = element;
elements = newArr;
}
//数组元素的删除
public void delete(int index) {
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("越界");
}
int[] newArr = new int[elements.length - 1];
for (int i = 0; i < newArr.length; i++) {
if (i < index) {
newArr[i] = elements[i];
} else {
newArr[i] = elements[i + 1];
}
}
elements = newArr;
}
//获取某个下标的元素
public int get(int index) {
return elements[index];
}
//插入元素到指定位置
public void insert(int num, int index) {
int[] newArr = new int[elements.length + 1];
for (int i = 0; i < newArr.length; i++) {
if (i < index) {
newArr[i] = elements[i];
} else if (i == index) {
newArr[i] = num;
} else {
newArr[i] = elements[i + 1];
}
}
elements = newArr;
}
//替换指定位置的元素
public void set(int index, int element) {
elements[index] = element;
}
//元素的线性查找
public int search(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return i;
}
}
return -1;
}
// 二分法查找 -- 有局限
public void BinarySearch(int[] arr, int target) {
int begin = 0;
int end = arr.length - 1;
int mid = (begin + end) / 2;
int index = -1;
if (begin >= end) {
System.out.println(-1);
}
while (true) {
if (arr[mid] == target) {
index = mid;
break;
} else {
if (arr[mid] > target) {
end = mid - 1;
} else {
begin = mid + 1;
}
mid = (begin + end) / 2;
}
}
System.out.println("index:" + index);
}
java实现数组
猜你喜欢
转载自blog.csdn.net/qq_41409907/article/details/89033513
今日推荐
周排行