当前位置: 首页 > 知识库问答 >
问题:

为什么这个“for”循环不从数组列表中删除值?[副本]

薛朝
2023-03-14
Integer remove(Integer value)
    {
        if (_set_array.size() == 0)
        {
            return null;
        }
        else if (value == null)
        {
            return null;
        }
        else
        {
            for (int i = _set_array.size() - 1; i >= 0; i--)
            {
                if (value == _set_array.get(i))
                {
                    _set_array.remove(i);
                    return value;
                }
            }
            return null;
        }
    }

共有1个答案

林绪
2023-03-14

您正在比较引用。使用intvalue方法将引用转换为基元值:

value.intValue() == _set_array.get(i).intValue()

此处解释:https://stackoverflow.com/A/53511942/1465553

或者,如注释中所建议的,您可以使用方法equals来比较这两个引用。

 类似资料:
  • 我可以打印最大罚款,但我不能打印计数。我看不出max和count之间的区别,也看不出为什么它不让我打印count。感谢任何帮助

  • 问题内容: 我想做的是请用户输入一些字符串以读入数组,然后要求用户输入该数量的字符串并将其读入数组。当我运行此代码时,它从不要求我在第一个for循环的第一个循环中输入内容,只打印出“字符串#0:字符串#1:”,然后我就可以输入文本了。为什么会这样,我做错了什么? 问题答案: 缓冲。 输入输入数量时,不会在输入缓冲区中占用换行符的位置。在for循环的迭代0中,缓冲区中已经有一行输入,并且可以立即完成

  • 这真的只是我的问题。我在网上所能找到的只是如何删除键值对,而不是如何在键值是列表的情况下从键值中删除特定值。例:一个关键的情感值是[‘中立’、‘快乐’],我只想删除‘快乐’。字典[情感]。删除('happy')根本不起作用。

  • 我在一个CGdfs列表中有多个数据帧。 我想使用循环从所有这些数据帧中删除一个名为“情节”的列。我该怎么做呢? 我试过下面的方法,但不起作用

  • 问题内容: 我有一个奇怪的问题。我以为这会花我几分钟,但现在我已经挣扎了几个小时……这就是我得到的: 该是 在ArrayList中我得到了一些字符串(共14个左右),和他们的9,它得名_Hardi。 并使用上面的代码,我想删除它们。如果我使用a,那么它将打印出9次,这是好的,因为_Hardi在ArrayList中是9次。 但是,当我使用它时,它不会删除所有9个,而只会删除几个。我做了一些测试,我也

  • 问题内容: 嗨,我有一个问题,在遍历python中的列表时我似乎无法删除项目,这就是我得到的:如果用户在for循环中被问到要删除的问题时输入n或N,则应该删除标题,问题在于,当所有操作完成后,所有项目仍然存在,并且没有任何项目被移除… 问题答案: 以下代码将解决您的问题。您必须遍历列表的副本。您无法从要迭代的列表中删除项目。