设计MyArray2类来实现以下要求: 使用二分法查询数组中的元素是否存在。数组元素个数可以由用户确定, 数组元素值也可由用户输入;
时间: 2024-11-09 17:21:39 浏览: 13
js删除数组中指定元素
设计一个名为MyArray2的类,我们可以按照以下步骤来实现:
1. **类声明**:
```java
import java.util.Arrays;
public class MyArray2<T extends Comparable<T>> {
private T[] array;
private int size;
// 构造函数,接收初始大小和数组元素
public MyArray2(int initialSize) {
array = (T[]) new Comparable[initialSize];
size = 0;
}
}
```
这里我们假设数组元素需要支持`Comparable`接口,以便于比较。
2. **添加元素方法**:
```java
public void addElement(T element) {
if (size < array.length) {
array[size] = element;
size++;
} else {
System.out.println("数组已满,无法添加更多元素");
}
}
```
3. **查找元素方法(二分查找)**:
```java
public boolean contains(T target) {
if (size == 0) return false; // 空数组不存在目标
int left = 0, right = size - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
// 使用Comparable接口的compareTo方法比较元素
if (array[mid].compareTo(target) == 0) {
return true;
} else if (array[mid].compareTo(target) < 0) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
```
4. **获取数组长度和查看元素**:
```java
public int getSize() {
return size;
}
public String toString() {
return Arrays.toString(array);
}
```
阅读全文