List<String> a = new ArrayList<String>();
List<String> b = new ArrayList<String>();
a.add("apple");
a.add("orange");
System.out.println(a.containsAll(b));
上面的程序输出了True。不理解为什么会输出True?因为 B
是空的。 A
包含了B
中的所有内容。
b
是空的,所以b
中没有任何a
中没有的内容。这是一个逻辑问题:A是否包含B内的所有元素?
可以理解为对于B中的每个元素,它是否也属于A?
当B为空时,条件为真,因为没有元素需要检查:对于B中的每个元素,所以没有元素。
List.ContainsAll会在列表中包含目标元素时返回true。因为B是空的,所以A包含与B相同的所有元素。