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

尝试检查arraylist是否是另一个

慕通
2023-03-14

我的两个列表中有以下元素,清单1[A F K]和清单2[B A C F K]。清单1的所有元素都在清单2中,因此它应该返回true

我尝试使用list1.containsAll(list2),但它并不支持我。

我尝试在这两个列表中循环,如果找到匹配,我就清空第一个列表中的那个位置,但这不起作用,因为我认为它会受到并发修改的影响。这是我的代码

    ArrayList<String> subTreeList = new ArrayList<String>();
    ArrayList<String> mainTreeList = new ArrayList<String>();

        treeCopyToList(t1,subTreeList);
        treeCopyToList(t2,mainTreeList);

        int mainTreeSize = mainTreeList.size();

    for(int i = 0; i < subTreeList.size(); i++){
        for(int j = 0; j < mainTreeSize; j++){
            if( subTreeList.get(i).equals(mainTreeList.get(j)) ){
                subTreeList.remove(i);
            }   
        }
    }
    System.out.println(subTreeList);
    return subTreeList.isEmpty();
}

在这里,subTreeList最终输出[A]。我知道它会跳过中间元素,因为当我移除size元素时,它也会被修改。我如何去解决这个问题,这样我最终得到一个空列表。

共有1个答案

李华茂
2023-03-14

您使用containsall的顺序是向后的。

您试图确定list2是否包含list1中的所有元素,而不是list1是否包含list2中的所有元素。

只要把它倒过来,它就会对你起作用。

 类似资料:
  • 我需要检查一个arraylist中的任何值是否存在于另一个arraylist中: 它打印“它不包含”。我需要知道是否有方法比较这两个arraylist,如果其他arraylist中存在任何值,它应该返回。我知道迭代可以有所帮助。有什么简单的方法可以做到这一点吗?

  • 问题内容: 我可能在这里找不到一个简单的单行代码,但这是我的问题: 如何检查ArrayList是否包含另一个ArrayList中的所有对象?我正在寻找(如果存在的话)类似的东西: 例如: 问题答案: 接口中有一个声明的方法。在您的设置中给出所需的答案。

  • 问题内容: 我有两个arraylist 我想检查a2中是否存在a1的所有元素。这是我正在尝试的问题 这没有给出一致的结果…还有其他方法可以做到吗? 问题答案: 不知道我是否正确理解了您的问题,为什么使用? 试过这个: 它输出 添加一个额外的元素将使它失败(如预期): 它输出

  • 问题内容: 如何轻松检查一个ArrayList中的所有元素是否都是另一ArrayList的所有元素? 问题答案: 使用Collection.containsAll():

  • 问题内容: 如何检查扫描仪中写入的值是否存在? 问题答案: 只需使用ArrayList.contains(desiredElement)即可。例如,如果您要从示例中查找conta1帐户,则可以使用以下方法: 编辑: 请注意,为了使其正常工作,您将需要适当地重写equals()和hashCode()方法。如果使用的是Eclipse IDE,则可以通过首先打开对象的源文件并选择来生成这些方法。

  • 问题内容: 我想知道一个类是否为枚举,但是我想我缺少了一些东西: 它给我一个错误,指出Enum.class无效。那么,如何检查类是否为枚举?我很确定有可能确定这一点,但我无法做到。 谢谢 问题答案: 正确的语法为: 但对于枚举,这是一种更方便的方法: 更新:对于带有主体的枚举项(例如,覆盖方法),这实际上将不起作用。在这种情况下,请使用 参考: