Ответ 1
Потому что B
пуст. A
содержит все в B
.
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
.
Это вопрос логики: содержит ли А все элементы внутри B?
Это можно видеть как для каждого элемента в B, этот элемент также принадлежит A?
Вы можете понять, что условие истинно, так как B пуст, нет элемента для проверки: для каждого элемента в B, поэтому без элемента.
List.ContainsAll вернет true, если список содержит все элементы в целевом объекте. Поскольку B пуст, A содержит все те же элементы, что и B.
Очевидно, опечатка. b.add( "оранжевый" ) - это то, что подразумевалось.