动态数组 04 包含 & 查找 & 删除

包含 - boolean contains(int e)

  • 遍历数组中的所有元素,和待查找的元素比较,如果相等,就含有该元素,否则不含有;
// 查找数组中是否有元素e
public boolean contains(int e){
    for(int i = 0 ; i < size ; i ++){
        if(data[i] == e)
            return true;
    }
    return false;
}

查找 - int find(int e)

  • 遍历数组中的所有元素,和待查找的元素比较,如果相等,就返回找到元素的索引,否则返回-1;
// 查找数组中元素e所在的索引,如果不存在元素e,则返回-1
public int find(int e){
    for(int i = 0 ; i < size ; i ++){
        if(data[i] == e)
            return i;
    }
    return -1;
}

删除 - int remove(int index)

  • 判断要删除的索引合法后,就取出该元素用以返回,在返回之前把待删除元素之后的元素都前移一格,并维护 size
// 从数组中删除index位置的元素, 返回删除的元素
public int remove(int index){
    if(index < 0 || index >= size)
        throw new IllegalArgumentException("Remove failed. Index is illegal.");

    int ret = data[index];
    for(int i = index + 1 ; i < size ; i ++)
        data[i - 1] = data[i];
    size --;
    return ret;
}

// 从数组中删除第一个元素, 返回删除的元素
public int removeFirst(){
    return remove(0);
}

// 从数组中删除最后一个元素, 返回删除的元素
public int removeLast(){
    return remove(size - 1);
}

删除 - void removeElement(int e)

  • 从数组中查找要删除的元素,如果找到了(会得到该元素的索引),就删除,找不到就什么都不做;
// 从数组中删除元素e
public void removeElement(int e){
    int index = find(e);
    if(index != -1)
        remove(index);
}

你可能感兴趣的:(动态数组 04 包含 & 查找 & 删除)