java - 用 Java 编写 removeAll 的实现

标签 java

我正在研究以下问题:

编写一个 removeAll 方法,它接受一个整数值作为参数,并从列表中删除所有出现的给定值。

我的代码没有检查数组中的所有元素。当我将 for 循环中的“大小”更改为数组中的整数数量时,它工作正常。它检查所有这些。

public class ArrayIntList { 
    private int[] elementData;
    private int size;
}


public void remove(int index) {

    for(int i = index; i < size-1; i++) {
        elementData[i] = elementData[i+1];
    }
    size--;
}

public void removeAll(int num) {

    for (int j = 0; j < size; j++) {// this loop doesn't check all the elements

        if (elementData[j] == num) {
            remove(j);
        } 

    }

}

最佳答案

如果要删除元素,则需要递减 j 否则会跳过元素。

remove(j);
j--;

或者,如果您从末尾迭代到开头,则不必更改计数器,因为您已经处理了那些元素。

 for (int j = size - 1; j >= 0; j--) {
    if (elementData[j] == num) {
          remove(j);
     } 
 }

关于java - 用 Java 编写 removeAll 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059176/

相关文章:

java - Java中阿拉伯标点符号的匹配

java - JPA,保存关系而不查询实体

java - 如何获取 jbutton 来更新 jlabel?

java - Android运行时权限——如何实现

java - 从 RandomAccessFile 中读取特定字节并测试它们是否等于 0

java - 覆盖线程池中线程的中断方法

java - 当请求的凭证模式为 '*' 时,响应中的 header 不能是通配符 'include'

java - 使用可选的尾随截断零将字符串解析为 LocalDateTime

java - 我正在获取 b.setOnClickListener(new OnClickListener() 错误

java - 为什么我不能在方法中抛出异常(Java)