添加元素(add(int num)
)
-
检查当前元素数量是否等于数组容量(
size == arr.length
)-
如果已满,创建一个新数组
brr
,容量是原数组的 1.5 倍 -
将原数组元素复制到新数组,然后将
arr
指向新数组(完成扩容)
-
-
将新元素添加到
arr[size]
位置 -
元素数量
size
加 1

指定位置添加(add(int position, int num)
)
-
先检查插入位置的合法性(
position < 0 || position > size
则提示错误) -
如需扩容,执行与上面相同的扩容逻辑
-
从最后一个元素开始,将
position
位置及之后的元素依次向后移动一位(避免覆盖数据) -
在
position
位置插入新元素 -
元素数量
size
加 1

二 删除元素(delete(int num)
)
-
从数组末尾向前遍历(
i从size-1到0
) -
当找到与
num
相等的元素时:-
从该元素的下一位开始,将所有元素依次向前移动一位(覆盖要删除的元素)
-
元素数量
size
减 1
-
-
注:此实现会删除所有与
num
相等的元素(因为是遍历整个数组)

字符串查找:
-
遍历数组 :从数组的第一个元素(索引
0
)开始,逐个检查到当前实际元素的最后一个(索引size-1
)。 -
匹配判断 :在遍历过程中,将每个元素与目标值
num
进行比较。 -
返回结果:
- 如果找到与
num
相等的元素,立即返回该元素所在的索引位置(第一个匹配项)。 - 如果遍历完所有元素都没有找到匹配项,则返回
-1
,表示该元素不存在于集合中。
- 如果找到与


二分查找法查找有序数组
- 递归终止条件 :
left > right
时,说明查找范围无效,返回-1
(没找到)。 - 取中间索引 :
mid = left + (right - left) / 2
(避免直接(left+right)/2
可能的整数溢出)。 - 匹配判断 :
- 找到目标值:
arr[mid] == target
,返回mid
(索引)。 - 中间值小于目标值:说明目标值在右半段,递归查找
[mid+1, right]
。 - 中间值大于目标值:说明目标值在左半段,递归查找
[left, mid-1]
。
- 找到目标值:
