Как элемент не может содержаться в исходном наборе, но в его немодифицированной копии?
Исходный набор не содержит элемент во время его копирования. Смотрите изображение.
Следующий метод возвращает true
, хотя он всегда должен возвращать false
. Реализация c
и clusters
выполняется в обоих случаях HashSet
.
public static boolean confumbled(Set<String> c, Set<Set<String>> clusters) {
return (!clusters.contains(c) && new HashSet<>(clusters).contains(c));
}
Отладка показала, что элемент содержится в оригинале, но Set.contains(element)
возвращает false
по какой-либо причине. Смотрите изображение.
Может кто-нибудь объяснить мне, что происходит?