java - 为什么我的程序没有删除 "all"?

标签 java arraylist

我的问题是,当我输出这段代码时,它没有输出我想要的内容,即删除“全部”。它输出与第一个 print 语句完全相同的内容。

这是我的代码:

// RemoveAll
// Spec: To remove the "all"
// ArrayList remove() exercise

import java.util.ArrayList;

public class RemoveAll
{
public static void main(String args[])
{
    ArrayList<String> ray;
    ray = new ArrayList<String>();
    int spot = ray.size() - 1;

    ray.add("all");
    ray.add("all");
    ray.add("fun");
    ray.add("dog");
    ray.add("bat");
    ray.add("cat");
    ray.add("all");
    ray.add("dog");
    ray.add("all");
    ray.add("all");
    System.out.println(ray);
    System.out.println(ray.size());

    // add in a loop to remove all occurrences of all
    while (spot >= 0)
    {
        if (ray.get(spot).equalsIgnoreCase("all"))
        {
            ray.remove(spot);
        }

        spot = spot - 1;
    }

    System.out.println("\n" + ray);
    System.out.println(ray.size());
}
}

有什么想法吗?

最佳答案

您在填充列表之前确定size()

在列表填满后将其放置(即在 add() 之后)

int spot = ray.size() - 1;

关于java - 为什么我的程序没有删除 "all"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035696/

相关文章:

java - 如何在 linux 或 unix 上找到用户的主目录?

java - JasperServer REST 客户端路径如何?

java - Java Netbeans 程序中的不同结果

java - OntouchListener 向数组添加太多值

java - ArrayList 调整大小

java - PhoneDirectory 程序中的 NullPointerException

java - 从 Jersey application.wadl 中排除资源路径?

java - Bitronix 事务无法与 JMS 队列一起使用

java - 使用 ServiceBusReceiverAsyncClient 的 Azure 服务总线不并发使用 Java

java - 如何根据用户输入运行某些进程,然后相应地销毁它们?