List<String> a = new ArrayList<String>();
List<Str开发者_如何学JAVAing> b = new ArrayList<String>();
a.add("apple");
a.add("orange");
System.out.println(a.containsAll(b));
The above program prints a True. Dont understand why is it printing True?
Because B
is empty. A
contains everything in B
.
Because b
is empty. Therefore there is nothing in b
that is not in a
.
It's a matter of logic: does A contain all the elements inside B?
This can be seen as for each element in B, does this element belong to A too?
You can understand that the condition is true, since B is empty, there is no element to check: for each element in B, so for no element.
List.ContainsAll will return true if the list contains all of the elements within the target. Because B is empty A contains all the same elements as B.
Obviously a typo. b.add("orange") is what was meant.
精彩评论