Java 如何检查Arraylist中的两个字符串值是否包含在另一个Arraylist中?

Java 如何检查Arraylist中的两个字符串值是否包含在另一个Arraylist中?,java,arraylist,data-structures,Java,Arraylist,Data Structures,我有一个包含两个字符串值的Arraylist,我想检查第二个Arraylist中是否同时存在这些值。由于某种原因,我陷入困境,无法让代码正常工作 这是我的密码: public static void main(String[] args) { ArrayList <String> list1 = new ArrayList <String>(); list1.add("bob"); list1.add("karen"); Ar

我有一个包含两个字符串值的Arraylist,我想检查第二个Arraylist中是否同时存在这些值。由于某种原因,我陷入困境,无法让代码正常工作

这是我的密码:

    public static void main(String[] args) {

    ArrayList <String> list1 = new ArrayList <String>();

    list1.add("bob");
    list1.add("karen");

    ArrayList <String> list2 = new ArrayList <String>();

    list2.add("java");
    list2.add("karen");     
    list2.add("cook");
    list2.add("tablet");
    list2.add("cup");
    list2.add("coffee");

    for (String list11 : list1) {

        for (String list22 : list2) {

            if (list22.contains(list11)){

                System.out.println ("List 2 contains the strings from list1");
            }
        }
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList list1=新的ArrayList();
清单1.添加(“bob”);
清单1.添加(“卡伦”);
ArrayList list2=新的ArrayList();
列表2.添加(“java”);
清单2.添加(“卡伦”);
清单2.添加(“厨师”);
清单2.添加(“片剂”);
清单2.添加(“杯子”);
清单2.添加(“咖啡”);
for(字符串列表11:列表1){
for(字符串列表22:列表2){
if(列表22.contains(列表11)){
System.out.println(“列表2包含列表1中的字符串”);
}
}
}
}
即使list11中的所有值都不存在于list22中,但其中只有一个值,我的if语句仍在执行中。我的目标是仅当list1中的所有值都出现在list2中时才执行if语句,而不进行任何硬编码,因为list1的大小最终会增加


我做错了什么?

在您的例子中,
list2
是您正在检查的
list1
的超集,for循环应该如下所示:

boolean allElementsPresent = true;
    for (String list11 : list1) {
            if (!list22.contains(list11)){
                allElementsPresent = false;                
            }
    }
if(allElementsPresent){
    System.out.println ("List 2 contains the strings from list1");
}
无需迭代
list2
对象。您只需迭代
list1
即可检查
list2
中是否存在每个元素。

使用以下方法:

if(list2.containsAll(list1))
    System.out.println ("List 2 contains the strings from list1");

.containsAll()
如果指定集合(列表1)中的所有对象都是此列表(列表2)的元素,则返回
true
,否则返回
false

我更喜欢你的答案。由于我是一名大三学生,所以最好自己制定“逻辑”,而不是使用Spartas解决方案。:)